# Create a Task

Put an item with the thread attached onto the workspace's Tasks list — the thing that survives the end of a shift, which an internal note does not.

## Getting here

**Automate → Workflows**, open a workflow, click **+** on the canvas, then pick **Create a Task** under **Add Steps**.

## Before you start

- An **owner**, **admin** or **agent** can add this step and save the workflow. Publishing it is an **owner** or **admin** action.
- Building and running workflows depends on your plan; see [pricing](/pricing).
- Nothing outside Inchat has to be connected. The task appears on the workspace's own **Tasks** page.

## Set up

1. Open the workflow and click **+** where the task belongs.
2. Pick **Create a Task**.
3. Write the task title, and optionally notes for whoever picks it up — both can quote details from the run.
4. Choose an owner, or leave it as **Conversation's assignee (else shared queue)**, and a priority.
5. Optional: set **Due in (hours)** to give the task a due time.
6. Save the step, then publish the workflow.

## Fields

| Field | What it means | Default | Limits |
| --- | --- | --- | --- |
| Task title | The task's title, shown on the Tasks list. Can quote fields from the run. | — | Truncated to 300 characters if longer. If it resolves to nothing at all, the step fails and no task is created. |
| Task notes | Optional notes for whoever picks the task up. Can quote fields from the run. | — | — |
| Owner | Who the task is assigned to. | Conversation's assignee (else shared queue) | Naming someone here is not checked against this workspace's member list — see Limits. |
| Priority | Low, Normal or High. | Normal | — |
| Due in (hours) | Hours from now the task is due. | — | Leave blank for no due date; zero or a negative number is treated the same as blank. |

## How it works

- The step creates one row on the workspace's **Tasks** list, carrying the title, notes, owner, priority, due time, and a link back to the conversation and its contact.
- The task also records which workflow created it, so an operator can trace why it exists.
- If no owner is named on the step, the task falls back to the conversation's current assignee; if there is none, the task is created unassigned — a real, supported state on the shared queue.
- If the conversation cannot be looked up when the step runs, the task is still created, just without its contact link and without the assignee fallback.

## When it fails

- The title resolves to an empty string after quoting the run's fields: the step fails with **the task title resolved to empty**, and no task is created.
- The database write itself fails (for example, an owner id that does not exist at all): the step fails with **could not create the task**.
- You read the reason in the workflow's **Activity** tab: pick the run under **Execution log** and the step's line names it.

## Limits

- Naming an owner on this step is not checked against the workspace's member list the way **Assign To (human)** checks a teammate — someone who has since left the workspace can still be named here with no error.
- It does not notify the owner — no push, no in-app alert. The task simply appears on their **Tasks** list, or the shared queue if unassigned, next time they look.
- It is a single pass-through action with no Success or Failure branch of its own.
- A due time is only a due time — nothing in this step pages anyone when a task becomes overdue.
- **Escalate** can create its own follow-up task as a side effect, but only when the conversation already has an assignee, the AI agent's follow-up-task setting is on, and nothing has already summarised the current stretch of the conversation — an AI Reply step's own decline already does, so Escalate right after one usually creates neither. Check whether Escalate's own task actually ran before adding this step for the same hand-off, to avoid ending up with two.

## Best practices

- Write the title and notes to quote the run — "Follow up with contact" tells nobody anything they did not already know; naming what was said or paid does.
- Use this step on the lanes genuinely worth a person's time, and leave the rest of the workflow fully automated.

## Use cases

- A high-value deal stage is reached, and a task is created for the account owner with the deal's value quoted in the notes.
- A path with no assignee yet routes to a team's queue and creates an unassigned task with a due time, so the follow-up is visible on the shared queue even before anyone claims the conversation.

## FAQ and troubleshooting

### Does the person the task is assigned to get notified?

No. The task appears on their Tasks list, but nothing pushes or alerts them when it is created.

### What happens if I leave the owner blank?

It falls back to the conversation's current assignee. If the conversation has none, the task is created unassigned, on the shared queue.

## Related

- [Assign To (human)](https://inchat.inseller.my/help/workflows/assign-to-human)
- [Escalate](https://inchat.inseller.my/help/workflows/escalate)
- [Open / Close Conversation](https://inchat.inseller.my/help/workflows/open-close-conversation)

---

Source files: `src/lib/workflows/ai-builder/spec.ts`, `src/lib/workflows/canvas-model.ts`, `src/components/workflows/WorkflowStepConfigDrawer.tsx`, `src/lib/workflows/engine-record-actions.ts`, `src/lib/ai/handoff-summary.ts`, `src/lib/ai/handoff-note.ts`, `src/lib/workflows/engine.test.ts`
