Free version

Notion HelpDesk by Marcan et Co.

Turn every support email into a ticket in Notion

A free n8n workflow that files each email to your support address as a ticket in Notion, with the customer as its requester. Free and open source.

Your support inbox, in Notion

Every email becomes a ticket.

Each email to your support address is a ticket in your Notion, with the email as its body.

The customer is on file.

The sender is found in your Contacts, or added, and set as the ticket's requester.

One thread, one ticket.

A reply in the same thread is added to its ticket as a comment, not filed as a new ticket.

Attachments are kept.

Files in the email are attached to the ticket.

No duplicates.

An email already on a ticket is skipped, even when a failed run is retried.

Within seconds.

n8n stays connected to your inbox over IMAP: Gmail, Google Workspace, Zoho Mail or a typical cPanel host.

Yours.

Your data stays in your Notion and your n8n. Free, under the MIT license.

What you need

To run it

Install it in about 15 minutes

Notion HelpDesk by Marcan et Co. turns every email to your support address into a Ticket in Notion. This guide sets up the Free tier in about 15 minutes.

1. Duplicate the Notion template

  1. Open the Notion HelpDesk template and click Duplicate, top right. Pick the workspace for your help desk.
  2. The copy holds a Tickets database, a Contacts database and a Settings page. Keep them together under the same page.

Don't rename the database properties: the workflow finds them by name. In the Tickets database, New must stay the default Status option, since new Tickets get the default. You can change the Ticket body's layout: edit the Tickets database's default template (New ▾ → the template's •••). The email goes above it.

2. Create the Notion integration

  1. In the workspace holding your copy, go to app.notion.com/developers/connections (Developer tools → Connections) → New connection. Give it a name (for example "Notion HelpDesk"), choose the API token authentication method (not OAuth) and click Create connection.
  2. In Capabilities, keep Read content, Update content and Insert content, and turn on Read comments and Insert comments: follow-ups are added as comments, and the Paid tier reads comments.
  3. Under Integration token, copy the API token (copy icon at the right of the field). You'll paste it into n8n in step 5.
  4. Back in Notion, open the page that holds your copy → ••• → Connections → add your integration. That page and its subpages inherit the access.

3. Copy the database ids

Open the Tickets database as a full page and copy its link (••• → Copy link). The id is the 32 characters before ?v=:

https://www.notion.so/yourspace/1f2e3d4c5b6a79881f2e3d4c5b6a7988?v=…
                                └──────────── database id ─────┘

Do the same for Contacts. You'll paste both ids in step 5.

4. Get your IMAP credentials

Gmail and Google Workspace: app password

n8n signs in to Gmail with an app password, not your regular password.

  1. Turn on 2-Step Verification for the support account if it isn't on yet (myaccount.google.com/security).
  2. Create an app password at myaccount.google.com/apppasswords, named for example "n8n HelpDesk". Copy the 16 characters without the spaces.

App passwords aren't available when the account signs in with security keys only or uses Advanced Protection, and a Google Workspace admin can turn them off for the organization. In those cases, ask your admin or use a different support mailbox.

Gmail / Google Workspace Zoho Mail cPanel host
IMAP host imap.gmail.com imap.zoho.com (organization accounts: imappro.zoho.com) usually mail.yourdomain.com
IMAP port 993, SSL/TLS 993, SSL/TLS 993, SSL/TLS
User the full support address the full support address the full support address
Password the app password your password, or an app-specific password if 2FA is on the mailbox password

The Free tier only reads mail. The Paid tier also sends over SMTP with the same user and password (Gmail: smtp.gmail.com, port 465 with SSL/TLS, or port 587 with SSL/TLS off if 465 times out), so keep these details at hand.

Check plus-addressing

Send an email from another address to your support address with +test before the @, for example [email protected]. It should land in the support inbox. Gmail and Google Workspace support this out of the box. If it bounces or never arrives, look for "plus addressing" or "subaddressing" in your provider's help and turn it on. The Free tier works without it, but the Paid tier relies on it to match replies to their Ticket.

5. Import and configure the workflow

  1. In n8n, import the workflow: from the n8n template library, Use workflow; from a file, create a workflow, then ••• (top right) → Import from File… → inbound.json.
  2. Open Email received → Credential → Create new credential (IMAP) and fill in the details from step 4.
  3. Open Find Ticket, create a Notion API credential in its credential field and paste the API token from step 2. Then pick the same credential in every other HTTP Request node (12 in all). If it's your only Notion credential, n8n will have selected it already.
  4. Open Settings and replace PASTE_TICKETS_DATABASE_ID and PASTE_CONTACTS_DATABASE_ID with the ids from step 3.
  5. Save.

6. Test, then publish

  1. Click Execute workflow, then send an email to your support address from another address. Usually within seconds, a Ticket appears in Notion with the email as its body and you as its Requester.
  2. Test a follow-up. Click Execute workflow again, since in test mode each click handles one email. From the address used in step 1, open the email you sent (in your Sent folder) and click Reply. Instead of opening a new Ticket, this follow-up is added as a comment on the step 1 Ticket.
  3. Before you publish, mark as read any old emails in the support inbox that shouldn't become Tickets: the workflow picks up unread emails.
  4. Publish (activate) the workflow. It stays connected to the inbox and picks up each new email as it arrives.

If an execution fails, fix the cause and retry it from Executions: an email already on a Ticket is skipped, so a retry never creates a duplicate.

Want to answer from Notion too?

The full version closes the loop: a comment on a ticket goes out as your reply to the customer, their answer comes back to the same ticket, closing a ticket sends a closing email, and you get an email if something fails. It uses the same Notion template, so moving to it doesn’t move any data.

FAQ

Gmail, Google Workspace, Zoho Mail and typical cPanel hosts, over IMAP. Microsoft 365 isn’t supported: Microsoft has turned off password sign-in.

In your Notion and your n8n. Marcan et Co. hosts nothing for you.

The free version comes without direct support. For questions, post on the n8n community forum.

Yes. Both versions use the same Notion template: you import the full version’s workflows and turn off the free one, with no data to move.