Turn support emails into triaged Linear tickets

When a customer emails support, file a categorized Linear ticket, ping your support Slack channel, and reply with a reference number, all automatically.

Agentic Task
PostmarkLinearSlack BotCustomer SupportOperationsFeedback TriageEmail AutomationNotifications & Alerts

Build an agent workflow that turns every inbound customer support email into a triaged Linear ticket with an automatic acknowledgement reply.

Trigger: a Postmark inbound webhook. The workflow should fire whenever Postmark's inbound parsing forwards a new message that hit our support inbox (for example, support@ourcompany.com). The webhook payload includes the From address, FromName, Subject, TextBody, HtmlBody, StrippedTextReply, and any Attachments.

Skip rules. Before doing anything else, stop and exit cleanly if any of these are true: the Subject starts with 'Auto:', 'Out of office', 'Automatic reply', or 'Auto-reply'; the message has an 'Auto-Submitted' header that is not 'no'; or Postmark already matched the sender against a blocked inbound rule. These should produce no ticket, no Slack message, and no reply.

Classification. Read the From, Subject, StrippedTextReply (prefer this over TextBody so we don't include quoted thread history), and any attached error logs. Pick exactly one category from: bug, billing, feature_request, account_access, other. Pick exactly one priority from: urgent, high, normal, low. Use language cues: words like 'down', 'broken', 'cannot log in', 'charged twice', 'data loss', or attached stack traces push priority to urgent or high. Generic questions and feature ideas sit at normal or low. Map priority to Linear's numeric priority field: urgent=1, high=2, normal=3, low=4.

Create the Linear ticket. Use Linear's Create Issue against our Support team. Title should be a clean one-liner derived from the Subject (strip 'Re:', 'Fwd:', and any ticket prefixes). Description should be Markdown and include: a header line with the sender's name and email, the category and detected priority, then the StrippedTextReply as the body. If attachments are present, list their filenames at the bottom. Set the Linear priority field from the mapping above. Capture the returned issue identifier (like SUP-482) and URL.

Post to Slack. Use Slack Bot's Send a Message to post a one-line summary in #support-inbox. Format it as: priority emoji, category label, sender name, ticket identifier as a clickable link to the Linear issue, and a short snippet of the subject. Example: ':red_circle: bug | Jane Doe | <https://linear.app/...|SUP-482> | Dashboard not loading after login'.

Send the acknowledgement. Use Postmark's Send Email with Template to reply to the original sender. Use TemplateAlias 'support_ack'. Pass a TemplateModel that includes: ticket_id (the Linear identifier), category, priority, sender_name, and expected_response_window. Set expected_response_window from priority: urgent = within 1 hour, high = within 4 hours, normal = within 1 business day, low = within 3 business days. Set the From to our verified support sender, the To to the original From address, and ReplyTo to support@ourcompany.com so customer replies stay threaded.

Error handling. If Linear's Create Issue fails, still post a Slack message in #support-inbox flagging the failure so a human can pick it up, and do not send the acknowledgement (we don't want to promise a ticket we didn't create). If only the Slack post fails, still send the acknowledgement. Log every skipped auto-reply with the From address and Subject so we can audit later.

Additional information

What does this prompt do?
  • Watches your support inbox through Postmark and runs on every new customer email.
  • Sorts each message by type (bug, billing, feature request, account access, other) and urgency, then files a Linear ticket on your support team.
  • Posts a one-line summary in your Slack support channel with a link to the new ticket so the team sees it instantly.
  • Sends the customer an automatic acknowledgement email with their reference number and an expected response window based on priority.
  • Quietly skips out-of-office replies, auto-responders, and senders you have already blocked in Postmark.
What do I need to use this?
  • A Postmark account with inbound email set up on your support address, and a saved acknowledgement template you want sent back to customers.
  • A Linear workspace with a Support team where new tickets should land.
  • A Slack workspace and a channel like #support-inbox where the team watches incoming tickets.
How can I customize it?
  • Change the categories or priority labels to match how your team already triages (for example, swap 'billing' for 'invoicing' or add a 'security' bucket).
  • Adjust the response-time language in the acknowledgement email so it matches your real SLAs.
  • Point the Slack notification at a different channel, or split it: bugs go to engineering, billing to finance.
  • Tweak the skip rules to ignore additional auto-responder patterns or noisy domains.

Frequently asked questions

Do I have to use Postmark for this, or will any inbox work?
This prompt is built around Postmark's inbound email feature, which forwards each message to the workflow as soon as it arrives. You can point your support address (like support@yourcompany.com) at Postmark and keep using your existing email client, since Postmark just acts as the receiver.
Will customers see the reference number when they reply?
Yes. The acknowledgement email includes the Linear ticket identifier (for example, SUP-482) as a reference, so when a customer replies the thread stays tied to that ticket.
What stops out-of-office replies from creating tickets?
The workflow checks for common auto-reply signals like subjects that start with 'Auto:' or 'Out of office' and quietly skips them. It also respects the blocked-sender rules you have already set in Postmark.
How does the workflow decide what is urgent?
It reads the actual language of the email and any error logs the customer pasted in. Words like 'down', 'cannot log in', 'charged twice', or attached stack traces push priority up, while feature requests and general questions sit at normal or low.
Can I send the auto-reply from my own domain instead of a Postmark address?
Yes, as long as the sending domain or sender address is verified in Postmark. The template you set up there controls the look and copy of the reply.

Stop letting support emails pile up in a shared inbox.

Connect Postmark, Linear, and Slack once, and Geni triages every new support email the moment it arrives.