Documentation / Workflows

Building blocks: people

Minimum role
Organisation admin
Applies per
organisation
Last updated
11 October 2026
aishaa version
80c056408

Menu path: Account > Workflows > (open a workflow) > Add step > A person

In short: with human.request (Ask a person) the workflow asks a colleague a question with a few answers and waits for the answer. With task.create (Task) the workflow leaves a task and continues straight away. Both land in To do and, if the run is about a conversation, on the ticket.

Where to find this

Account > Workflows, open a workflow, Add step, group A person. Who: from the role Organisation admin. The colleague who gets the question or task handles it in To do or on the ticket.

An Ask a person step in the workflow editor with Title, Text, Answers, Button texts, Show, Fields to fill in (JSON schema), Starting values, For and Deadline (minutes), and for each answer the If choice.

human.request: Ask a person

Asks a colleague a question with a few answers (the exits of the step) and optionally fields to fill in or edit, and waits for the answer or for the deadline.

Input

Name Label Type Required Explanation
title Title Text yes The question in a few words, visible in To do.
text Text LongText no More explanation for the colleague.
exits Answers Answers yes The answers to choose from, as ids in lower case, such as ["approve", "reject"]. 1 up to and including 6, all different, each starting with a lower-case letter or digit, followed by lower-case letters, digits, - or _, at most 41 characters. Not expired. Every answer is an exit.
exitLabels Button texts AnswerLabels no The text on each button, in the organisation’s language, for example {"approve": "Approve", "reject": "Reject"}. At most 60 characters per button, only for answers from exits.
show Show Json no An object with what the colleague gets to see to decide, with readable keys in the colleague’s language. Values are usually references, for example {"Report": "{{verslag.text}}"}.
fields Fields to fill in (JSON schema) Json no A JSON schema (an object, "type": "object") of the fields the colleague fills in or edits. Leave it out if the colleague only chooses an answer.
values Starting values Json no The starting values of those fields (a first version the colleague can edit), an object; may contain references.
assignee For User no The user id of a colleague, or a reference to the colleague the event mentions, such as {{trigger.recordedByUserId}}. Left out: for everyone.
deadlineMinutes Deadline (minutes) Number no Minutes until the question expires. 7 days by default, greater than 0, at most 30 days.

A new step starts with {"exits": ["approve", "reject"]}.

Exits: every answer from exits, plus expired (expired) if nobody answered before the deadline.

Output fields

Field Label Content
answer Answer The chosen answer (a value from exits).
fields Fields to fill in (JSON schema) What the colleague filled in or edited, following the schema of fields.
answeredBy Answered by The user id of whoever answered.
actionId Action The id of the question.

With expired, only actionId is filled.

Example: having a report approved before it goes to the dossier.

{
  "id": "controle",
  "label": "Have the adviser check the report",
  "block": "human.request",
  "inputs": {
    "title": "Check the report",
    "text": "Is this report of the conversation correct?",
    "exits": ["approve", "reject"],
    "exitLabels": { "approve": "Correct, send it", "reject": "Do not send" },
    "show": { "Report": "{{verslag.text}}" },
    "fields": { "type": "object", "properties": { "verslag": { "type": "string", "title": "Report" } } },
    "values": { "verslag": "{{verslag.text}}" },
    "assignee": "{{trigger.recordedByUserId}}",
    "deadlineMinutes": 2880
  },
  "exits": { "approve": "naar-dossier" }
}

Here the run ends at reject and expired, because those exits lead nowhere. You read the edited text later as {{controle.fields.verslag}}.

What the colleague sees: a card with the title, the text, what the workflow shows (show), the fields from the schema and the answers as buttons. Above it, if the run has them, are the customer, the recording and the documents the run made. The card is in To do and, if the run is about a conversation, on the ticket.

When to use it: for every decision a person has to make before the workflow continues, and as an approval before something goes to a customer or another system. When not to: if the workflow does not need to wait. Use task.create then.

task.create: Task

Leaves a task for a colleague, with an optional due date. The run does not wait: the task stays in the colleague’s To do.

Input

Name Label Type Required Explanation
title Title Text yes What needs to happen, in a few words.
text Text LongText no More explanation.
assignee For User no The user id of a colleague, or a reference such as {{trigger.recordedByUserId}}. Left out: for everyone.
dueMinutes Due in (minutes) Number no Minutes until the task is due, greater than 0, at most 365 days. The run does not wait.

Exits: none; continues with next.

Output fields: actionId (Action), the id of the task.

When to use it: for work a person does later (“call the customer back on Friday”), and as a safety net for an error: give a step an onError to a task with {{<step>.error}} in the text. When not to: if what the workflow does next depends on the answer. Use human.request then.

Good to know

  • A question or task is attached to the run’s ticket if it has one, and to the other objects of the run (the customer, the recording).
  • A question or task that is still open on a closed or deleted ticket expires by itself; a waiting human.request then continues via expired. Work that has to happen after closing belongs in a workflow, not as an open item on the closed ticket.
  • Waiting costs nothing: a run that waits for an answer stands still until the answer or the deadline comes.
  • A fixed assignee who may not handle the organisation’s tickets makes the step fail. If a reference from the event ({{trigger.<...>UserId}}) is such a person, the work goes to everyone.
  • Never put ids (ticketId, messageId, actionId) in show: the question is already linked to the ticket.

Related

Last updated on 11 October 2026. Checked against aishaa version 80c056408. Something wrong or missing? Email support@aishaa.nl.