How to turn a WhatsApp conversation into a WACRM task
WACRM Workspace lets you create a task straight from a conversation in the Inbox, with due dates and assignment available through the API. This tutorial walks the real screens and calls, and says plainly which parts of the bridge back to the Work side still need a request to WACRM.
By Huy Nguyen (David), Founder & CEO of Netbase JSC Updated
A task in WACRM always starts from a conversation: a customer asks something your team needs to follow up on, and rather than leaving a note in your head, you turn that message into a task right there in the Inbox. This tutorial covers what that screen actually does today, how to do the same thing (plus assignment) through the API, and where the bridge back to WACRM’s underlying Work system still needs a request to WACRM rather than a toggle you can flip yourself.
What you need before you start
- A WACRM Workspace account with at least one project and at least one conversation in Conversations → Inbox.
- For the API steps only:
curl(or any HTTP client that can set a header), and an API key from Developer / API & MCP.
Create a task from the Inbox
- Open Conversations → Inbox and select the conversation you want to follow up on.
- In the side panel, find the Tasks card, below the conversation’s Contact card (and below the Consent and Billing cards too, when those show for the contact). It starts empty with No tasks yet until you create the first one.
- Click Create task. A dialog opens asking for a Title (required) and a Due date (optional).
- Fill in a title and click Create task in the dialog.
The dialog closes and the new task appears at the top of the list immediately — the card re-fetches right after a successful create, so there’s nothing to refresh by hand. Each row shows the task’s title, a status chip, and when it was created. A new task always starts with status open (shown as a warning-colored chip); done shows in green, cancelled in a neutral gray.
There is no field for a note or description here — only title and due date are saved, because that’s all this dialog sends today. There is also no assignee picker on this screen; assignment is API-only, see below.
Create and list tasks through the API
Everything the Tasks card does is backed by two Core API endpoints, scoped per conversation:
POST /v1/conversations/{conversation}/tasks work:write
GET /v1/conversations/{conversation}/tasks work:read work:read/work:write are selectable when you create a key — in Developer / API & MCP, click Create key,
open Restrict what this key can do (advanced), and tick work:read/work:write under WhatsApp CRM scopes
(work:write needs a Secret key). Creating keys and restricting scopes depends on your plan — Workspace shows an
upgrade notice if yours doesn’t include it. A key minted without them answers 403 insufficient_scope on these
calls — that’s expected, not a bug; mint a new key with the scopes ticked instead.
Create a task, with assignment
POST .../tasks requires an Idempotency-Key header, same convention as POST /v1/messages: retrying the same
request with the same key replays the original task instead of creating a second one, which makes it safe to retry
after a timeout.
curl -s -X POST "https://api.wacrm.ai/v1/conversations/your-conversation-uuid/tasks" \
-H "Authorization: Bearer sk_live_your_scoped_key" \
-H "Idempotency-Key: a-key-you-generate-once-per-task" \
-H "Content-Type: application/json" \
-d '{"title": "Call back about refund", "due_at": "2026-11-10", "assignee_ref": "staff-jane"}' {
"data": {
"id": "0e2b1c9a-...-task-uuid",
"conversation_id": "your-conversation-uuid",
"title": "Call back about refund",
"due_at": "2026-11-10T00:00:00+00:00",
"assignee_ref": "staff-jane",
"status": "open",
"external_ref": null,
"created_at": "2026-11-06T09:00:00+00:00"
}
} due_at and assignee_ref are both optional. assignee_ref is a free-text string your own system defines — WACRM
doesn’t validate it against a staff list, since Workspace has no staff-assignment concept of its own yet for this
screen to draw from. external_ref stays null until the Work bridge delivers the task to the other side.
List a conversation’s tasks
curl -s "https://api.wacrm.ai/v1/conversations/your-conversation-uuid/tasks" \
-H "Authorization: Bearer sk_live_your_scoped_key" This is the same call the Inbox Tasks card itself makes, so the response always matches what you’d see on screen — newest first, with the same fields as the create response above (8 fields each).
See a task’s status come back
Once a task reaches the Work side, a status change there (someone marks it done, or cancels it) is meant to flow
back to WACRM through a signed callback, POST /v1/work/callbacks, and update the task’s status to done or
cancelled. From the Inbox, that shows up as the task’s chip changing color the next time you open the conversation
fresh — there’s no live polling on this card and no refetch just from looking at the same conversation again, so a
status change made while you’re already looking at it won’t appear until you switch to another conversation and back.
Two things have to be true on WACRM’s side for that round trip to actually happen, and neither is something you can turn on yourself from Workspace:
- The Work bridge has to be enabled. WACRM switches it on for the whole service, not per workspace, and it’s off
today; a disabled bridge still saves your task and queues its delivery, it just never reaches the other side or
gets an
external_refuntil WACRM turns it on. - The Work side has to send the status webhook. Today, a task’s
statusonly ever changes through that one callback — there’s no WACRM-side polling fallback. If a task you created looks stuck on open even though it was handled elsewhere, that’s the known gap, not something you’re missing in Workspace.
What works today vs. what needs WACRM
| What you want to do | Works today? |
|---|---|
| Create a task from an Inbox conversation (title + due date) | Yes — Inbox → the conversation’s Tasks card → Create task |
| See a newly created task appear in the list | Yes — the card re-fetches right after you create it |
| Assign a task to a teammate | API only, via assignee_ref — no picker in the Tasks card yet |
| Call the task endpoints with your own API key | Yes — mint a key with work:write/work:read |
| Have a task actually reach WACRM’s Work side | Not yet — the Work bridge is off service-wide; WACRM switches it on, it isn’t a per-workspace setting |
| See a task’s status update after it’s handled on the Work side | Needs the Work bridge on (off service-wide today) and the Work side’s status webhook |
| Mark a task done or cancelled from Workspace | Not yet — no write path in the UI; status only changes via the Work-side callback |
Ready to put this into practice? Request early access to get a Workspace, or have WACRM’s team set up your project for you with Quick Setup.
Talk to an expert
Huy Nguyen (David), Founder & CEO
Ask David a question about turn a whatsapp conversation into a wacrm task.
Frequently asked questions
Can I assign a task to a teammate from the Inbox?
Not from the Tasks card itself — it only asks for a title and an optional due date. The underlying API accepts an assignee_ref field on the same create call, so assignment works today if you create the task through the API, but there is no staff picker anywhere in Workspace yet to do it from the screen.
Why doesn't my task's status update in the Inbox by itself?
Two separate things have to be true. First, WACRM's Work bridge is switched on by WACRM for the whole service, not per workspace — and it's off today, so no workspace's status changes reach a Work-side webhook yet; that's not something you can request just for your own workspace. Second, even once a status change does land, the Tasks card only re-fetches right after you create a task, not on a timer, so you need to switch to another conversation and back to see an updated chip.
Do I need to ask WACRM for anything before I can create a task from the Inbox?
No — the Tasks card in Conversations → Inbox works out of the box for any conversation. Calling the create/list endpoints with your own API key just needs a key minted with the work:write/work:read scopes — tick them under Restrict what this key can do (advanced) → WhatsApp CRM scopes when you create it. The one thing that still needs a request to WACRM is having the task actually reach the Work side, which needs the bridge enabled on WACRM's side.
What happens to a task I create while the Work bridge is off?
Nothing is lost. WACRM always saves the task row and queues a task.requested event in its own outbox in the same step, whether or not the bridge is on. With the bridge off, that event just sits queued — your task still shows up in the Inbox Tasks card and through the API, it simply never reaches an external_ref or a status update from the other side until WACRM turns the bridge on.
Want this set up for you?
Quick Setup connects your number with coexistence in 48 hours, done by a person.