n8n integration

Updated Oct 26, 20269 min read
English
On this page

n8n is a tool for building automated workflows. There are two ways to use it with Deskwoot. With a Webhook node in n8n, Deskwoot events such as a new conversation, a new customer message or a CSAT rating start your n8n workflows, so you can pass them on to your CRM, a spreadsheet or your own systems. The Deskwoot node for n8n also acts in Deskwoot: your workflows reply, add notes, assign, add labels and create or update contacts. You find both ways under Settings > Integrations > n8n too.

Which plan you need

The Webhook node gets its events from a Deskwoot webhook. Webhooks need the Startup plan or higher, and the trial includes them. On the free Hacker plan webhooks send nothing.

A webhook only sends data out of Deskwoot. To let n8n answer customer messages as a bot, add a Custom Webhook bot under Settings > Bots, which needs a paid plan (Startup and up). To act in Deskwoot from n8n, use the Deskwoot node for n8n (below). For anything the node does not do, such as resolving a conversation, call the Deskwoot REST API with n8n's HTTP Request node and an API token. The node and the REST API need a paid Enterprise plan, and a trial does not include API access. How to create a token: API tokens and developer access.

The Webhook node in n8n (Startup and up)

Set it up in n8n

  1. In n8n, open your workflow and add a Webhook node as its first step.
  2. Set HTTP Method to POST.
  3. Leave Respond on Immediately, so n8n answers Deskwoot at once.
  4. Copy the node's Production URL.

Set it up in Deskwoot

  1. Go to Settings > Webhooks. Only administrators see this page.
  2. Click Add Webhook.
  3. Paste the Production URL under Endpoint URL.
  4. Under Subscribe to Events, tick the events your workflow needs. With none ticked, the webhook gets every event.
  5. Click Create Webhook.

Then publish the workflow in n8n: n8n listens on the Production URL only once the workflow is published. From then on each event starts a run of the workflow, and you see the runs in its Executions tab.

What arrives in n8n

Each event comes as a POST request with a JSON body. In the output of the Webhook node, the body holds event (the name of the event), data (the data of the event), timestamp and accountId. The headers hold x-deskwoot-event with the name of the event and x-deskwoot-signature. When one webhook sends several events, let the next node check event, for example an If node.

You can pick these events: Conversation created, Conversation updated, Conversation assigned, Conversation resolved, Message created, Contact created, Contact updated and CSAT submitted. The data of each event is in the API docs.

Good to know

  • Deskwoot waits 10 seconds at most. If n8n does not answer in time or answers with an error, Deskwoot tries once more after 5 seconds. With Respond on Immediately, a long workflow never makes Deskwoot wait.
  • n8n has to be reachable from the internet over HTTPS. Deskwoot sends only to public HTTPS addresses. n8n on your own server needs a public HTTPS address, not one inside your network.
  • Use the Production URL, not the Test URL. Deskwoot keeps sending to the address you saved, so it has to be the one n8n listens on while the workflow is published.

The Deskwoot node for n8n (Enterprise)

The Deskwoot node for n8n is a community node with the name n8n-nodes-deskwoot. It brings 2 nodes: the Deskwoot Trigger, which starts a workflow when something happens in Deskwoot, and the Deskwoot node, which acts in Deskwoot. It works with n8n on your own server. n8n Cloud offers only community nodes that n8n has checked, and this node is not one of them yet.

Install it and sign in

  1. In n8n, go to Settings > Community Nodes, click Install, enter n8n-nodes-deskwoot and install it. Only the owner and admins of your n8n see this page.
  2. In Deskwoot, go to Settings > API Tokens and click Create token. Tick the scopes Read and Write and create the token. Copy it: Deskwoot shows it only once. Only administrators see this page.
  3. In n8n, create a Deskwoot API credential. Paste the token under API Token. Under Account ID, enter the ID that the same Deskwoot page shows as Your Account ID. Leave Base URL as it is.
  4. Save the credential. n8n tests it right away by listing the inboxes of your workspace.

If the test fails, the token was revoked or has expired, the account ID belongs to another workspace, the workspace is not on the Enterprise plan, or the token lacks the scope Read. An MCP token for AI agents does not work here: create a REST API token under Settings > API Tokens.

Deskwoot Trigger

Pick one of these events under Event:

  • Conversation Created: a conversation starts, whether a customer wrote in or your team started it.
  • Customer Message Received: a customer writes in a conversation. Replies and notes from your team do not count.
  • Conversation Assigned: a conversation gets a new assignee. Round robin on a new conversation and automation rules do not set it off.
  • Conversation Resolved: a conversation is marked resolved.
  • Contact Created: a teammate adds a contact in Deskwoot, or an app adds one through the API. Contacts that Deskwoot creates from incoming messages start Conversation Created instead.
  • Conversation Rated: a customer rates a conversation in the satisfaction survey.

Each event arrives as one item with plain fields. A conversation comes with its ID, number, link, status, subject, channel, inbox, assignee, team, labels, the customer's name, email address and phone number, and the customer's first message.

When you publish the workflow, the trigger subscribes its Production URL to the event in Deskwoot, and when you unpublish it, the trigger removes that subscription. Deskwoot signs each event, and the trigger checks the signature, so nobody else can start your workflow through its URL. The trigger needs:

  • A token that an administrator created. Only such a token can turn on Deskwoot triggers.
  • n8n reachable from the internet over HTTPS. If n8n runs behind a reverse proxy, set n8n's WEBHOOK_URL to its public address.

Deskwoot node

Set Resource and Operation:

  • Conversation > Start: sends a first message to a contact from one of your inboxes, by email address, phone number or contact ID. It works where a business may write first, such as email or SMS. Deskwoot refuses a start the channel cannot deliver (a live chat, WhatsApp without an approved template, or a Telegram, LINE or X user who never wrote to that inbox), and the node shows the reason.
  • Conversation > Reply: sends a reply to the customer on the conversation's channel.
  • Conversation > Add Private Note: adds a note that only your team sees.
  • Conversation > Assign: assigns a conversation to a teammate, a team, or both.
  • Conversation > Add Label: adds one of your labels to a conversation.
  • Contact > Create or Update: updates the contact with this email address, or creates it when there is none.
  • Contact > Find: returns the one contact that best matches an email address, phone number or name.

You can take the conversation ID from the output of the Deskwoot Trigger. Replies and notes from n8n show the name of the person who created the API token. The node also works as a tool for n8n's AI agents.

Frequently asked questions

Which plan do I need?

Startup or higher for the webhook that starts your workflows, and the trial includes it. A Custom Webhook bot, which lets n8n answer your customers, needs a paid plan (Startup and up). The Deskwoot node for n8n and the REST API need a paid Enterprise plan, and a trial does not include API access.

Why does my workflow not start?

Check that the workflow is published in n8n, that the webhook in Deskwoot has the Production URL and not the Test URL, that the event is ticked (or none is), and that n8n is reachable from the internet over HTTPS. On the free Hacker plan webhooks send nothing at all.

Can n8n change something in Deskwoot?

Yes, with the Deskwoot node for n8n on the Enterprise plan: it replies, adds private notes, assigns, adds labels, starts conversations and creates or updates contacts. For anything else, such as resolving a conversation, call the REST API with n8n's HTTP Request node, also on Enterprise. The webhook only sends events out. Without Enterprise, a Custom Webhook bot under Settings > Bots (Startup and up) lets n8n answer customer messages as a bot.

Why can I not publish a workflow with the Deskwoot Trigger?

Only an API token that an administrator created can turn on Deskwoot triggers, because a trigger receives the events of every conversation, like a webhook. Create a token as an administrator and use it in the Deskwoot API credential. n8n also has to be reachable from the internet over HTTPS, and a workspace can hold at most 100 of these subscriptions, together with the triggers of the Deskwoot app for Zapier.

What happens when I revoke the token?

Every trigger that token turned on stops at once, and the node's actions fail. Create a new token, update the Deskwoot API credential, then unpublish and publish the workflow again.

How do I know an event really came from Deskwoot?

Each request carries an x-deskwoot-signature header: sha256= followed by the hex HMAC SHA256 of the raw body, signed with the webhook's secret. The Deskwoot Trigger checks it for you. For the Webhook node, the dashboard does not show that secret, so treat the Production URL like a password: n8n gives it a random path, and only Deskwoot should know it. A webhook created through the REST API returns its secret once in the response.

Does this work with n8n Cloud?

The Webhook node works on n8n Cloud and on n8n you run on your own server. The Deskwoot node for n8n works only with n8n on your own server, because n8n Cloud offers only community nodes that n8n has checked. On your own server, n8n needs a public HTTPS address, so Deskwoot can reach it.

Can I start several workflows?

Yes. Create one webhook in Deskwoot for each workflow's Production URL, each with its own events. With the Deskwoot node, each published workflow with a Deskwoot Trigger gets its own subscription.

What happens if n8n is down for a while?

Events from that time are lost after the single retry, because Deskwoot keeps nothing beyond it. On Enterprise you can catch up through the REST API, for example by listing the conversations sorted by newest activity.

Was this guide helpful?

Keep reading

Ask Fynn about this guide

Get a short answer from this guide and the rest of the help center.

Still need help?

Fynn answers from these guides in the chat, and you can reach the team there too.

Email us