Works with ClickUp

AI Chatbot for ClickUp: escalations arrive as triaged tasks, not transcripts

Operations teams that run everything inside one ClickUp Workspace do not want another inbox. Asyntai answers your website visitors using your own content, and when a question needs a person, that moment becomes a task in the List you already work from — with the visitor's actual words in the description, a priority set, and an owner attached.

Get Started Free See the honest setup

See what the chatbot would answer

Enter your website and watch the AI answer questions using your own content — the same answers your ClickUp tasks will be built from.

Why an ops team wants the chatbot writing into ClickUp

A team that has already moved docs, sprints, client work and recurring checklists into ClickUp has made a decision: one place, one queue, one view of who owns what. Support chat is usually the last thing still living outside that decision. It sits in a widget dashboard that one person checks, and the rest of the company never sees it.

That gap is where work goes missing. A visitor asks for a human on a Friday evening. Somebody screenshots the transcript into a channel on Monday. Nobody owns it, nothing has a due date, and it never appears in the weekly review because it was never a task.

Triage is not a chat problem. It is a task problem. So put the output where triage already happens.

When the chatbot writes into ClickUp instead, the escalation inherits everything the Hierarchy already gives it. It has a Space, a List, a status, a priority and an assignee. It shows up in the same board view, the same workload chart and the same reporting as engineering work and client deliverables. Nothing new to check.

The four chatbot events ClickUp can act on

Asyntai fires four webhook events. You tick whichever ones a webhook should send. For a ClickUp task queue, start narrow.

escalation.requested
Someone asked for a human. Carries the session id and the message that triggered it. This is the one that should become a task.
conversation.started
A visitor opened a new conversation. Carries the session id, the page they were on and the device type.
message.received
A visitor sent a message and the chatbot answered. Carries the question, the answer, the session id and the page URL.
takeover.started
One of your agents took over from the chatbot. Carries the session id and the agent name.

Sending message.received straight into a List is the classic first mistake. A moderately busy site produces hundreds of those a week and the List becomes unreadable within days. Route that event to a Doc, a spreadsheet or a weekly digest instead, and keep the task queue for escalation.requested.

How to connect the chatbot to ClickUp, honestly

There is one thing to be straight about before you start, because most pages like this one skip it. This is not a one-click install, and Asyntai cannot call the ClickUp API on its own.

The reason is deliberate. An Asyntai webhook POSTs JSON to a URL and signs the body. It sends only Content-Type, X-Webhook-Event and X-Webhook-Signature. It has no field for a custom authentication header — and the ClickUp API needs an Authorization token on every request. So something has to sit in the middle and hold that token.

That something is a connector, and you almost certainly already have one: Make, Zapier, Pabbly, n8n, or a small endpoint you host yourself. It catches the webhook, keeps the ClickUp credentials, and calls the task action. Ten minutes, no code.

1. Connector
A catch-hook or Custom webhook generates a URL
2. Asyntai
Paste the URL, tick events, set a secret
3. Sample
One real chat teaches the connector the fields
4. ClickUp
Create Task into the List you chose

The four steps in full

Get a listening URL from your connector. In Zapier that is the Webhooks by Zapier trigger with Catch Hook. In Make it is the WebhooksCustom webhook module. Either one generates a unique address and starts listening. Copy it.
Register it in Asyntai. Open Settings → API, add a webhook, paste the URL, tick escalation.requested, and set a signing secret. Asyntai uses that secret to sign every delivery. Webhooks are part of the paid plans.
Send one real sample. Leave the connector listening, open your own chat widget, and ask the chatbot for a human. The connector reads the payload and every field becomes mappable from then on.
Add the ClickUp step. Choose ClickUp as the action app and pick the task creation action — in Zapier it is named Create Task. Select the Workspace and the List, then drag the payload fields into the task name, the description and your custom fields. Turn the automation on.
What Asyntai POSTs to the connector
// Headers: Content-Type: application/json // X-Webhook-Event: escalation.requested // X-Webhook-Signature: <HMAC-SHA256 of the body, using your secret> { "event": "escalation.requested", "payload": { "session_id": "s_8f31c0a4", "message": "My delivery is three days late and nobody has replied" } }

Once the connector has seen one delivery, those fields appear in the mapping panel of the ClickUp step. In Make's expression syntax, where 1 is the webhook module number, the mapping looks like this:

Mapping the payload into the ClickUp task
Task name: Escalation - {{1.payload.session_id}} Description: {{1.payload.message}} Priority: Urgent Status: To Do

The ClickUp credentials live in the connector, never in Asyntai. Rotating a ClickUp token, or moving the queue to a different List, is a change in one place and never touches your chatbot.

Choosing where the tasks land in the ClickUp Hierarchy

ClickUp arranges work as Workspace, then Space, then Folder, then List, then Task. The task creation action asks for a List, so the only real decision is which List. Here is the arrangement most teams settle on after a month.

Workspace
Your company. Nothing to change.
Space
The Space your operations or customer team already uses. Do not create a new one for this.
Folder
Optional. Useful if you run several brands or several websites and want them separated.
List
One List called Support Triage. This is what the connector points at.
Task
One escalation. Name from the session, description from the message, priority set on creation.

Add two custom fields to that List before you switch the automation on: a URL field for the page the visitor was on, and a short text field for the session id. Both arrive in the payload, both take five seconds to map, and both save an agent from guessing later.

Two ClickUp workflows worth building first

Build the first one today. Add the second once the List has a week of real traffic in it.

A visitor asks for a human, and a triaged task appears

The chatbot hands over. Within a second there is a task in Support Triage named after the session, with the visitor's own sentence in the description and priority set to Urgent. Your existing ClickUp Automation then does the rest: assign to whoever is on support rota this week, set a due date of two hours, and post to the team channel. Nobody had to notice anything.

escalation.requestedCatch HookCreate TaskClickUp Automation assigns

The weekly gap report, as one task with a checklist

Route message.received to a spreadsheet rather than a List, then run a scheduled step every Monday that reads the week's questions and creates a single ClickUp task in your content Space. Each recurring question becomes a checklist item. After a month the checklist stops being a support artefact and becomes a documentation backlog — the questions your website genuinely fails to answer, ranked by how often real people asked them.

message.receivedSpreadsheet rowWeekly scheduleCreate Task with checklist

The other direction: ClickUp can ask the chatbot too

Events flowing out are only half of it. Anything that can make an HTTP request can send a question in and get an answer back, which means a ClickUp Automation, a connector step, or your own script can enrich a task before a person ever opens it.

Asking the chatbot from an automation step
POST https://asyntai.com/api/v1/chat/ X-API-Key: YOUR_API_KEY Content-Type: application/json { "message": "My delivery is three days late", "session_id": "s_8f31c0a4", "website_id": "YOUR_WEBSITE_ID" } // Response: { "success": true, "response": "...", "session_id": "..." }

Take the response value and drop it into a comment on the task. The agent opens Support Triage and finds a suggested answer already sitting there, drawn from your own published content. The full endpoint reference is in the API documentation.

What the ClickUp connection adds to your chatbot

One queue, not two

Support escalations sit in the same Space, the same board view and the same workload report as everything else your team owns.

Signed deliveries

Every POST carries an HMAC-SHA256 signature of the body, generated from your secret, so a delivery can be checked against your account.

Answers from your own content

The chatbot answers using your own pages, documents and FAQ entries, so what reaches the task is grounded in what you actually published.

30+ languages, one payload

Visitors get replies in their own language automatically. The task looks the same whatever language the conversation happened in.

Your Automations still apply

Because it is an ordinary task in an ordinary List, every ClickUp Automation you already wrote for assignment, due dates and status runs on it unchanged.

Two-way by design

Events out through the webhook, questions in through the REST API. The same chatbot serves your visitors and your internal workflows.

What this actually costs

Two or three bills, and it is worth knowing all of them before you build.

  • Asyntai. Webhooks and the REST API need a paid plan — Starter, Standard or Pro. The free plan gives you 100 messages a month to try the chatbot itself, with no API or webhook access. See pricing.
  • ClickUp. A separate product with its own subscription, which you are presumably already paying for.
  • The connector. Make, Zapier, Pabbly and n8n all bill separately. One automation firing only on escalation.requested is low volume by nature and normally fits inside a free tier. Sending every message.received through does not, which is the second good reason to keep that event out of the task queue.

ClickUp chatbot questions

How do I send Asyntai chat events into ClickUp?

Through a connector. Asyntai POSTs signed JSON to any URL you give it, but it cannot send a custom Authorization header, and the ClickUp API requires one. So an automation tool sits in the middle: Make, Zapier, Pabbly, n8n or an endpoint you host. It catches the webhook, holds the ClickUp credentials, and calls the task action.

Which chat events can create a task?

Four: message.received, conversation.started, escalation.requested and takeover.started. Most teams start with escalation.requested only, because that is the event that genuinely needs a person, and it keeps the List readable.

Where in the Hierarchy do the tasks land?

Wherever you point the connector. ClickUp organises work as Workspace, Space, Folder, List and then Task, and the Create Task action asks for the List. One List called Support Triage inside the Space your team already uses is the usual answer.

Can a ClickUp automation ask the chatbot a question?

Yes. POST to https://asyntai.com/api/v1/chat/ with an X-API-Key header and a JSON body of message, session_id and website_id. The answer comes back in the response field, ready to post as a task comment.

What does it cost?

Asyntai webhooks and the API are on the paid plans (Starter, Standard, Pro); the free plan's 100 monthly messages do not include them. ClickUp bills separately, and so does the connector, though a single low-volume automation usually fits a free tier.

Other ways to wire the chatbot in

The same four events and the same API work through any tool that can receive a JSON POST.

Stop reading transcripts. Start working tasks.

Build the chatbot, point one webhook at your connector, and every request for a human becomes an owned, prioritised task in the List your team already lives in.

Get Started Free