GuidesPublished October 30, 2026

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
  1. The 2 options at a glance
  2. Option 1: a Deskwoot webhook starts your workflow
  3. Option 2: the Deskwoot node for n8n
  4. 3 workflows for small businesses
  5. Running n8n yourself: what it means for data protection
  6. Which option fits you?

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 n8nDeskwoot node for n8n
What it doesDeskwoot sends events to n8nReceives events, and replies, assigns, adds labels and keeps contacts up to date in Deskwoot
Deskwoot planStartup and up ($4 per agent a month), also in the trialEnterprise ($12 per agent a month), not in the trial
n8n Cloudyesnot yet
n8n on your serveryes, with a public HTTPS addressyes, with a public HTTPS address for the trigger
Protection against outside requeststhe random, secret path in the URLthe trigger checks every signature itself
Setupcopy the URL, paste it into Deskwootinstall 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

  1. In n8n, add a Webhook node as the first step, set HTTP Method to POST and leave Respond on Immediately.
  2. Copy the node's Production URL.
  3. In Deskwoot, go to Settings > Webhooks (only administrators see this page), click Add Webhook and paste the URL into Endpoint URL.
  4. 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.
  5. 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

  1. 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.
  2. 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.
  3. 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.

  1. In Deskwoot, create a webhook for CSAT submitted only.
  2. In n8n, an If node checks whether the rating in body.data.rating (1 to 5) is 2 or lower.
  3. If it is, n8n sends you an email with the comment from body.data.feedback and 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.

Share this article

Also available in:DeutschPortuguês

Frequently asked questions

The short answers are here. For anything else, ask Fynn below.

Can I use n8n with Deskwoot on the free plan?

No. Webhooks, which start your n8n workflows, come with the Startup plan and up, and on the free Hacker plan Deskwoot sends no webhooks. The 7 day trial includes webhooks, so you can try this option first.

Does the Deskwoot node work with n8n Cloud?

Not yet. n8n Cloud only offers community nodes that n8n has verified, and the Deskwoot node isn't one of them yet. On n8n you run yourself, you can install it today. The option with the Webhook node works on n8n Cloud too.

How do I install a community node in n8n?

In a self hosted n8n, go to Settings > Community Nodes, click Install, enter the package name (for Deskwoot, n8n-nodes-deskwoot) and confirm the note about the risks. According to n8n, only users with the Owner or Admin role can do this.

Can n8n reply to my customers in Deskwoot?

Yes, with the Deskwoot node on the Enterprise plan: it replies in a conversation, writes private notes, assigns, adds labels and keeps contacts up to date. Without Enterprise, n8n answers messages through a Custom Webhook bot under Settings > Bots, on the Startup plan and up. Each conversation that n8n answers with Reply or as a bot, or opens with Start, counts as 1 AI conversation. A regular webhook only sends events out.

Is n8n GDPR compliant?

That depends on how you run it. On n8n Cloud, n8n says it stores the data in the EU, in Frankfurt, and you sign a data processing agreement with n8n under Art. 28 GDPR. If you host it yourself, updates, backups and access control are your job, and if you rent a server for it, you need that kind of agreement with your hosting provider. This is general information, not legal advice.

What happens if my n8n is unreachable for a while?

Deskwoot waits up to 10 seconds for a response and tries once more after 5 seconds. After that, events from that time are lost, because Deskwoot doesn't keep them. On the Enterprise plan you can catch up through the REST API, for example by fetching conversations sorted by latest activity.

Browse all articles

Deskwoot interactive demo