n8n for customer service: connect Deskwoot by webhook or with its own node
You can connect Deskwoot to n8n in 2 ways: a webhook that sends events out, or the Deskwoot node, which can also reply, assign and keep contacts up to date. What each option needs, where it trips you up and what hosting it yourself means for data protection.
Deskwoot Team
12 min read
Contents
A customer gives your support 1 out of 5 stars, and you only read it on Friday in the weekly report. A regular customer writes in on Monday morning and ends up with your temp, because nobody can see that he has been ordering from you for 9 years.
n8n, a tool for automated workflows, closes gaps like these. Here you'll find both ways to connect Deskwoot to it, 3 workflows you can build yourself and what hosting n8n yourself means for data protection.
The 2 options at a glance
You can rent n8n as a cloud service, n8n Cloud, or run it on your own server. Deskwoot connects to it in 2 ways.
In the first, Deskwoot sends events by webhook to a Webhook node in n8n. In the second, you install the Deskwoot node for n8n, which receives events and can also take action in Deskwoot.
Which one fits comes down to 2 questions: should n8n do things in Deskwoot, and where does your n8n run?
| Webhook node in n8n | Deskwoot node for n8n | |
|---|---|---|
| What it does | Deskwoot sends events to n8n | Receives events, and replies, assigns, adds labels and keeps contacts up to date in Deskwoot |
| Deskwoot plan | Startup and up ($4 per agent a month), also in the trial | Enterprise ($12 per agent a month), not in the trial |
| n8n Cloud | yes | not yet |
| n8n on your server | yes, with a public HTTPS address | yes, with a public HTTPS address for the trigger |
| Protection against outside requests | the random, secret path in the URL | the trigger checks every signature itself |
| Setup | copy the URL, paste it into Deskwoot | install the node, create an API token |
You'll find both options in Deskwoot under Settings > Integrations > n8n.
Option 1: a Deskwoot webhook starts your workflow
Webhooks come with the Startup plan and up. Startup costs $4 per agent a month, or $3.20 billed annually, and the 7 day trial includes webhooks too. On the free Hacker plan, Deskwoot sends no webhooks.
Set it up in 5 steps
- In n8n, add a Webhook node as the first step, set HTTP Method to POST and leave Respond on Immediately.
- Copy the node's Production URL.
- In Deskwoot, go to Settings > Webhooks (only administrators see this page), click Add Webhook and paste the URL into Endpoint URL.
- Under Subscribe to Events, select only the events your workflow needs and click Create Webhook. The choices include Conversation created, Conversation assigned, Conversation resolved, Message created, Contact created and CSAT submitted.
- Publish the workflow in n8n.
Every event arrives as JSON with the fields event, data, timestamp and accountId. One webhook can subscribe to several events. An If node in the workflow then checks the event field and branches.
Test URL or Production URL
The first trap is the address. Every Webhook node in n8n has a Test URL and a Production URL.
According to the n8n docs on the Webhook node, n8n only registers the Production URL once you publish the workflow. Its runs show up only in the Executions tab, not in the editor. Put the Test URL into Deskwoot, and by the next day your workflow has gone quiet.
Time limit and retry
Deskwoot waits up to 10 seconds for a response. If none comes, or an error comes back, Deskwoot tries exactly once more after 5 seconds.
With Respond set to Immediately, n8n answers right away, however long the rest of the workflow takes. If n8n was unreachable for longer, the events from that time are lost, because Deskwoot doesn't keep them.
Every message starts a run
The Message created event fires for every message in a conversation, including your team's replies. A workflow that should react only to customer messages needs a filter.
On n8n Cloud, every run also counts. n8n bills by executions, and one execution is a complete run of the workflow.
According to n8n's pricing page, the Starter plan includes 2,500 executions a month (vendor figures, as of October 2026). If every message in a busy inbox starts a run, that allowance goes fast. So subscribe only to the events you actually use.
Signature and secret URL
Deskwoot signs every event with HMAC SHA256 in the x-deskwoot-signature header. The dashboard doesn't show the secret of a webhook created there, though. So with this option, your workflow can't recompute the signature.
The protection comes from the random path n8n gives every Production URL. So treat the URL like a password.
If you create the webhook through the REST API on the Enterprise plan, you get the secret once in the response and can check signatures yourself.
n8n behind a reverse proxy
Deskwoot only sends to public HTTPS addresses. If your n8n runs behind a reverse proxy, the n8n docs tell you to set the N8N_WEBHOOK_URL variable to the public address. Otherwise n8n shows an address that doesn't work from outside.
The old name WEBHOOK_URL has been deprecated since n8n 2.35.0.
What a webhook can't do
This option can't change anything in Deskwoot, because a webhook only sends data out. If you want n8n to answer your customers, add a Custom Webhook bot under Settings > Bots, on the Startup plan and up. Each conversation the bot answers counts as 1 AI conversation. For everything else, you need option 2.
Option 2: the Deskwoot node for n8n
The Deskwoot node is a community node, meaning an extension that doesn't come from n8n itself. The package is called n8n-nodes-deskwoot and is at version 0.1.0 on npm.
It contains 2 nodes: the Deskwoot Trigger, which starts workflows, and the Deskwoot node, which does the work in Deskwoot. Deskwoot publishes the package itself, under the MIT license, with the source code on GitHub.
What you need
The node signs in with a REST API token, and the REST API is part of the Enterprise plan at $12 per agent a month, or $9.60 billed annually.
The trial doesn't include API access. So you can only try the node on a paid Enterprise plan.
For now, it also only runs on n8n you host yourself. The n8n docs say: "Unverified community nodes aren't available on n8n cloud." Before the node can run on n8n Cloud, n8n has to review and approve it.
Install it and sign in
- In n8n, go to Settings > Community Nodes and click Install. Enter
n8n-nodes-deskwoot, confirm the note about the risks and install. According to n8n, only users with the Owner or Admin role can do this. - In Deskwoot, go to Settings > API Tokens, click Create token and select Read and Write. Copy the token right away, because Deskwoot shows it only once.
- In n8n, create a credential of the type Deskwoot API with the token and the account ID, which the same Deskwoot page shows under Your Account ID. n8n tests the connection by fetching your inboxes.
Only administrators see the API Tokens page. The trigger only sends events as long as the person who created the token is an administrator.
Replies and notes from n8n carry that person's name. So think about whose name your automation should write under.
What the trigger reports
- Conversation Created: a conversation starts, whether the customer writes first or your team starts it.
- Customer Message Received: the customer writes. Replies and notes from your team don't count, so you can skip the filter from option 1.
- Conversation Assigned: a conversation gets a new assignee. Round robin on new conversations and automation rules don't trigger it.
- Conversation Resolved: a conversation is resolved.
- Contact Created: someone on your team creates a contact, or an app does it through the API.
- Conversation Rated: the customer rates a conversation in the satisfaction survey.
When you publish the workflow, the trigger registers its address in Deskwoot on its own, and when you unpublish it, the trigger removes it again. It checks every event against its signature and rejects requests without a valid one.
A workspace can hold up to 100 of these registrations, and the triggers of the Deskwoot app for Zapier count toward the same limit.
What the node does in Deskwoot
- For conversations: Start (a first message to a contact), Reply, Add Private Note, Assign and Add Label.
- For contacts: Create or Update and Find.
Each conversation that n8n answers with Reply or opens with Start counts as 1 AI conversation. Notes, assignments, labels and contacts never count.
Start only works where a business is allowed to write first, such as email or SMS. Deskwoot rejects it for live chat.
The same goes for WhatsApp when the person hasn't written to your inbox in the last 24 hours, because the node doesn't send templates. In that case, the node shows you the reason.
Community nodes and your server
One caution applies to every community node: on its page about the risks, n8n warns that community nodes have "full access to the machine that n8n runs on".
Only install packages whose origin you know, and read what changed before you update.
3 workflows for small businesses
1. Bad rating, instant alert (webhook)
Deskwoot can send a satisfaction survey after a conversation is resolved. Surveys come with the Business plan and up.
- In Deskwoot, create a webhook for CSAT submitted only.
- In n8n, an If node checks whether the rating in
body.data.rating(1 to 5) is 2 or lower. - If it is, n8n sends you an email with the comment from
body.data.feedbackand a link to the conversation.
You build the link from https://deskwoot.com/app/, body.accountId, /conversations/ and body.data.conversationId. That way you can get back to the customer the same day.
2. Regular customers reach their usual contact person (node)
The Deskwoot Trigger starts on Conversation Created. n8n checks whether the email address from contactEmail (for WhatsApp, the number from contactPhone) is on your customer list, say in a Google Sheet or your CRM.
If it is, the node gets to work in Deskwoot:
- Assign gives the conversation to that customer's usual contact person, picked from the list or set by ID from your customer list.
- Add Label adds your "Regular customer" label.
- Add Private Note adds the customer number and the last order. Only your team sees the note.
3. A callback request from a form becomes a conversation in your inbox (node)
According to the n8n docs, a Form Trigger in n8n builds a complete form page for you, here with name, email address and phone number.
Once someone submits it, Create or Update creates the contact with name and phone number, or fills in an existing one. Start then sends a first message from your email inbox: "Thanks, we'll call you back by noon on the next business day."
The callback request now sits in Deskwoot as an open conversation, and the number is saved on the contact. If the person replies to the email, their reply lands in the same conversation.
Running n8n yourself: what it means for data protection
Events from Deskwoot contain personal data: depending on the event, names, email addresses, phone numbers or the text of a message. Where n8n runs decides who else processes this data.
The points below refer to the GDPR, so they apply to businesses in the EU. Outside the EU, your country's data protection laws apply. This is general information, not legal advice.
On n8n Cloud
On n8n Cloud, the data is stored in the EU, on servers in Frankfurt, according to the pricing page. n8n's security page names Microsoft Azure as the host.
n8n is then your processor, and under Art. 28(3) GDPR, processing by a processor is "governed by a contract". You sign this data processing agreement with n8n online.
On your own server
If you run n8n yourself, the data stays on your server. If you rent a server for it, the hosting provider is usually your processor, and you sign that kind of agreement with them.
The technical and organizational measures under Art. 32 GDPR are then up to you. In practice, that means:
- Installing updates
- Making backups
- Securing access
- Encrypting data
In its comparison of Cloud and self hosting, n8n itself says that installation and configuration take technical knowledge and that maintenance is your responsibility.
Saved runs and other recipients
n8n also saves every run along with its input data. According to the n8n docs, a self hosted n8n deletes finished runs after 336 hours, or 14 days, by default and keeps at most 10,000.
With EXECUTIONS_DATA_SAVE_ON_SUCCESS=none, it doesn't save successful runs at all. Shorter periods fit the storage limitation principle in Art. 5(1)(e) GDPR: keep data only as long as the purpose requires.
Every service your workflow passes data to is another recipient. If it processes the data on your behalf, you need an agreement under Art. 28 GDPR with that service too.
On Deskwoot's side
The app and database for every workspace run on servers in the Netherlands, on the free plan too. You sign the data processing agreement under Art. 28 GDPR right in the dashboard.
Which option fits you?
- If you use n8n Cloud or are on the Startup or Business plan, go with the webhook. It's enough for notifications and for passing data on to spreadsheets or other tools.
- If your workflow should act in Deskwoot itself, meaning reply, assign, add labels or update contacts, and you run n8n on your own server, go with the Deskwoot node on Enterprise.
Your first workflow
With workflow 1, you hear about a bad rating the same day. In Deskwoot, all you do is paste a URL and select the CSAT submitted event. You build the rest in n8n.
Webhooks and satisfaction surveys are included in the 7 day trial. It runs on the Enterprise plan (without API access), needs no credit card and covers up to 30 seats, yours included. The Hacker plan is free but sends no webhooks.
Every step with field names is in the help article n8n integration, so you can read it before you start. Webhooks and API tokens have their own articles, and the pricing page compares the plans.
Create an account at deskwoot.com/signup and paste the Production URL of your first Webhook node under Settings > Webhooks.

