Gmail to Linear, cleaner support tickets fast
Your support inbox isn’t “busy.” It’s messy. The same request shows up twice, important emails get buried, and by the time you’ve copied details into your tracker, the customer has already followed up.
This Gmail Linear tickets automation hits support leads first, but ops folks and agency owners feel it too. You get clean Linear issues with consistent titles, labels, and priority, without someone playing human router all day.
Below is the workflow, what it fixes, and how the pieces fit together so you can trust the output (and actually use it).
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Gmail to Linear, cleaner support tickets fast
flowchart LR
subgraph sg0["Timed Schedule Starter Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Timed Schedule Starter", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Engine", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Structured Result Parser", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/markdown.dark.svg' width='40' height='40' /></div><br/>Convert to Markdown"]
n4@{ icon: "mdi:cog", form: "rounded", label: "Flag Seen Items", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Draft Issue from Support", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Retrieve Recent Emails", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/linear.svg' width='40' height='40' /></div><br/>Create Linear Issue"]
n3 --> n5
n4 --> n3
n0 --> n6
n1 -.-> n5
n6 --> n4
n2 -.-> n5
n5 --> n7
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n2,n5 ai
class n1 aiModel
classDef customIcon fill:none,stroke:none
class n3,n7 customIcon
The Challenge: Turning messy emails into usable tickets
Email support is deceptively expensive. A customer writes a long, emotional message with screenshots, you skim it, then you translate it into something a dev (or you, later) can actually act on. Titles end up vague (“Help please”), priorities are inconsistent (“urgent” becomes “normal” depending on who read it), and the real context stays trapped in the email thread. And honestly, when things get hectic, the first thing that slips is the “I’ll create a ticket in a minute” promise.
It adds up fast. Here’s where it breaks down in day-to-day operations.
- Someone has to read every message and decide what it “really” is before work can start.
- Copying the email into your tracker introduces errors and missing details, especially with long threads.
- Duplicate requests sneak in because the same sender replies again, or two teammates tag the same email.
- Priority and labels drift over time, which means reporting and planning become guesswork.
The Fix: Gmail to Linear triage with AI summarization
This workflow watches your Gmail inbox for recent support messages, then turns each one into a ready-to-work Linear issue. It starts on a timed schedule, pulls in emails, and filters out anything it has already processed so you don’t create duplicate tickets. Next, the email body is converted from HTML to clean markdown, which makes it far easier to parse reliably (no weird formatting, no broken line breaks). Then an AI agent reads the request and produces a structured result: a clear issue title, a useful description, recommended labels, and a priority that matches the rules you set. Finally, Linear gets a properly formatted issue that your team can pick up immediately.
The workflow begins with a schedule that fetches recent Gmail messages. From there, duplicates are flagged, the content is cleaned into markdown, and OpenAI helps draft a structured “ticket-ready” summary. Linear is the last stop, where the issue is created using those AI-generated fields.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you get about 20 support emails a day. If it takes roughly 6 minutes to read, interpret, copy details into Linear, and pick labels, that’s about 2 hours of ticket admin daily. With this workflow, you spend maybe 10 minutes upfront defining labels and priority rules, then the daily work becomes a quick review of the created issues. Even if you sanity-check for 1 minute per ticket, you’re down to about 20 minutes a day.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Gmail for receiving support emails.
- Linear to create and manage issues.
- OpenAI API key (get it from the OpenAI API dashboard).
Skill level: Beginner. You’ll connect accounts, paste an API key, and adjust a few prompt rules for labels and priority.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A timed pull from Gmail. The workflow runs on a schedule and retrieves recent emails from the inbox you use for support. This keeps things simple and reliable, even if webhooks aren’t an option for your setup.
De-duplication and cleanup. It flags messages it has already seen so you don’t create the same Linear issue twice. Then it converts the email HTML into markdown, which strips out the usual formatting junk that makes summaries harder.
AI triage that follows your rules. An OpenAI chat model plus a structured parser produces a predictable output (title, description, labels, priority). This is the part you customize so it matches your product, your severity levels, and how you like issues named.
Ticket creation in Linear. The workflow takes the AI-generated fields and creates a Linear issue your team can assign, estimate, and ship. No copying, no “I’ll do it later,” no missing context.
You can easily modify the label set and priority rules to match your existing workflow in Linear. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
Set the workflow to run automatically on a timed interval so new support emails are processed regularly.
- Add the Timed Schedule Starter node as the trigger.
- Set the schedule rule to run every hour by configuring the interval field to
hours. - Connect Timed Schedule Starter to Retrieve Recent Emails.
Tip: If you want more frequent triage, change the interval to minutes or add multiple schedule rules.
Step 2: Connect Gmail and Pull Support Messages
Retrieve the most recent support emails and filter out messages already processed.
- Open Retrieve Recent Emails and set Operation to
getAll. - Set Limit to
1and Simple tofalse. - Set the search query to
to:[YOUR_EMAIL]in Filters → q. - Credential Required: Connect your gmailOAuth2 credentials.
- In Flag Seen Items, set Operation to
removeItemsSeenInPreviousExecutionsand Dedupe Value to={{ $json.id }}. - Connect Retrieve Recent Emails → Flag Seen Items.
⚠️ Common Pitfall: If to:[YOUR_EMAIL] doesn’t match your inbound address, no emails will be returned.
Step 3: Prepare Email Content for AI Triage
Convert the email HTML into clean markdown before sending it to the AI chain.
- Open Convert to Markdown and set HTML to
={{ $json.html }}. - Connect Flag Seen Items → Convert to Markdown.
- Connect Convert to Markdown → Draft Issue from Support.
Step 4: Set Up AI Triage and Structured Parsing
Use the AI chain to classify, prioritize, and rewrite the issue, then parse it into structured fields.
- Open OpenAI Chat Engine and select the model
gpt-4o-mini. - Credential Required: Connect your openAiApi credentials.
- In Draft Issue from Support, set Text to
=Reported by {{ $json.from.value[0].name }} <{{ $json.from.value[0].address }}> Reported at: {{ $now.toISO() }} Summary: {{ $json.subject }} Description: {{ $json.data.replaceAll('\n', ' ') }}. - Ensure Draft Issue from Support has Has Output Parser enabled.
- In Structured Result Parser, set Schema Type to
manualand paste the schema shown in the node’s Input Schema field. - Connect OpenAI Chat Engine to Draft Issue from Support as the AI language model.
- Connect Structured Result Parser to Draft Issue from Support as the output parser.
Tip: Structured Result Parser is an AI sub-node—credentials should be added to OpenAI Chat Engine, not the parser itself.
Step 5: Configure Linear Issue Creation
Create a Linear issue using the AI-generated summary, priority, description, and labels.
- Open Create Linear Issue and set Title to
={{ $json.output.summary }}. - Set Team ID to
[YOUR_ID]. - Under Additional Fields, set State ID to
[YOUR_ID]. - Set Priority ID to
={{ $json.output.priority ?? 3 }}. - Set Description to
={{ $json.output.description }} {{ $json.output.labels.map(label => `#${label}`).join(' ') }}. - Credential Required: Connect your linearApi credentials.
- Connect Draft Issue from Support → Create Linear Issue.
Step 6: Test and Activate Your Workflow
Run a manual test to confirm end-to-end triage and issue creation, then enable the schedule for production.
- Click Execute Workflow to run a manual test.
- Confirm that Retrieve Recent Emails returns a message and Flag Seen Items keeps only new items.
- Verify Draft Issue from Support outputs structured fields (
summary,priority,description,labels). - Check Linear to ensure Create Linear Issue created a new issue with the expected title and description.
- Toggle the workflow to Active so Timed Schedule Starter runs automatically.
Watch Out For
- Gmail credentials can expire or need specific permissions. If things break, check the Gmail connection in n8n’s Credentials screen and confirm the inbox scope is allowed.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Common Questions
About 30 minutes if your Gmail, Linear, and OpenAI accounts are ready.
Yes. You won’t write code, but you will need to connect accounts and paste an API key.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage costs (usually cents per day at low volume).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Start by editing the system prompt in the “Draft Issue from Support” AI step so it matches your labels, severity levels, and title format. You can also change which mailbox or Gmail query is used in “Retrieve Recent Emails” if your support emails are mixed with other traffic. Common tweaks include adding a “bug vs. billing vs. feature request” label rule, mapping VIP customers to higher priority, and enforcing a consistent title prefix like “Support:” or “Bug:”.
Usually it’s expired OAuth access or the wrong Gmail account connected. Reconnect the Gmail credential in n8n, then confirm the inbox you’re querying is the one receiving support. If the trigger runs but pulls zero messages, check your Gmail search/query filters and make sure messages aren’t being auto-archived or routed to a different label.
On n8n Cloud Starter, you can handle thousands of executions per month, which is enough for many small support inboxes. If you self-host, there’s no execution cap, and capacity depends on your server and the OpenAI response time. Practically, most teams can triage a typical day’s support emails in one scheduled run without touching anything.
Often, yes, because this isn’t just “email in, ticket out.” You’re also doing deduplication, HTML-to-markdown cleanup, and structured AI output that needs to stay consistent over time. n8n handles branching logic and data shaping without pushing you into expensive task counts, and self-hosting is there if volume grows. Zapier or Make can still work if you want a very simple version with a single summarization step, but you’ll spend more time fighting edge cases. If you’re on the fence, Talk to an automation expert and get a recommendation based on your volume and workflow.
Once this is running, your inbox stops being your ticket queue. Linear becomes the system, and the workflow quietly keeps it clean.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.