Documentation / Workflows

Building blocks: connected systems

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

Menu path: Account > Workflows > (open a workflow) > Add step > Fetch / Do

In short: five blocks work with the systems the organisation has connected through plugins. plugin.read (Fetch from a connected system) requests data with parameters you fill in yourself. record.find (Customer’s record) finds the customer’s record of one kind. record.read (Read the record’s details) reads the details of that record. plugin.action (Plugin action) does something in the system, as a proposal or at once. document.create (Make a document) makes a PDF that a plugin action can send along. How to combine them is described in Data from connected systems in a workflow.

Where to find this

Account > Workflows, open a workflow, Add step: plugin.read, record.find and record.read are in the group Fetch, plugin.action and document.create in Do. Who: from the role Organisation admin. Which actions, read operations and record kinds you can choose depends on the plugins the organisation has connected and switched on.

A Plugin action step in the workflow editor with the Action choice, How (Propose to a person or Execute at once), Parameters, Summary, For, Deadline (minutes) and, for each exit, the If choice.

plugin.read: Fetch from a connected system

Asks a connected system for data with one of the read operations the plugin offers to the AI, with parameters you fill in (usually from earlier steps). Only reads; changes nothing.

Input

Name Label Type Required Explanation
read What to read PluginRead yes pluginId/operationId of a read operation of the organisation.
input Parameters Json yes The parameters as an object following the operation’s schema. Values are usually references, such as {"serialNumber": "{{extract.serial}}"}.

A new step starts with {"input": {}}.

Exits

Exit Label When
found found The system gave an answer.
none not found The system does not know what was requested.
failed failed The plugin is not connected or is switched off, the operation does not exist (any more), the parameters do not fit the schema, or the system gave an error or no answer.

Output fields: data (Data), the system’s answer; error (Error) with none or failed. You read fields in the answer with a path, for example {{machine.data.assetReference}}.

Which operations: only read operations the plugin offers to the AI, with exactly one input, that do not return a file and that describe their parameters. An AI assistant sees them under “Plugin reads” in the guide from workflows_get_guide.

Good to know: what the answer says about a customer or record is not taken over as an identity; the block only reads. If the run is about a conversation, the answer is kept with that conversation, like a lookup on the ticket.

record.find: Customer’s record

Finds the customer’s record of one kind in a connected system, such as the dossier, so that a following step can continue with it. It only searches among the records linked to the customer on strong evidence (found on e-mail address or phone number, or linked by a person). A record that was only found by name may belong to someone with the same name and does not count.

Input

Name Label Type Required Explanation
kind Kind of record RecordKind yes A record kind that the organisation’s connected systems offer, such as dossier or order.
plugin Plugin Text no The plugin id, if several systems have records of this kind.
customer Customer Text no The id of the customer. By default the customer of the run.

Exits

Exit Label When
found found Exactly one record.
none none No record, or the run has no customer.
several several More than one record. The newest one comes first.

Output fields

Field Label Content
recordId Record The id of the record in aishaa. You pass this to record.read.
itemId Number in the system The number the plugin knows the record by. You often fill this in for a plugin action.
title Title
subtitle Subtitle
reference Reference
recordedAt Date
pluginId Plugin
count Number found 0, 1 or more (at most 10 in the list).
records All found Only with several: the list of records found (at most 10, newest first), each with the same fields.

With several, the separate fields contain the newest record. With none, only count (0) is filled.

Good to know

  • A workflow of one organisation only finds records of that organisation.
  • If customer does not name a customer of the account, or the run is about several customers without customer choosing one, the step fails.
  • Without record kinds in the organisation you cannot use this block.

record.read: Read the record’s details

Fetches the details of a record from the system it comes from, such as the order lines of an order that record.find found. The record itself determines what the read operation is called with; you pass no parameters.

Input

Name Label Type Required Explanation
read What to read RecordRead yes pluginId/operationId of a read operation on records that the organisation offers.
record Record Text yes The record, usually {{<record.find step>.recordId}}.

Exits

Exit Label When
found found The system gave the details.
none none There is no record (the reference is empty or the record does not exist in this organisation), or the system does not know it.
failed failed The record comes from a different plugin than the read operation, the plugin is not connected or is switched off, the operation does not read records of this kind, or the system gave an error.

Output fields: data (Data), the system’s answer; error (Error).

Which operations: only read operations that the plugin’s wiring binds to a record through the record’s id alone, and that do not return a file. Which ones those are is determined by the plugin’s wiring; see Decide for yourself what a plugin offers. An AI assistant sees them under “Record reads” in the guide, with the record kinds each operation reads.

plugin.action: Plugin action

Does something in a connected system, through the same proposal and approval process as everywhere in aishaa.

Input

Name Label Type Required Explanation
action Action PluginAction yes pluginId/operationId of a plugin action of the organisation.
mode How Choice no propose (default, Propose to a person): a colleague approves, edits or rejects, and the step waits. execute (Execute at once): the action happens straight away, in the name of the workflow.
input Parameters Json no The action’s parameters as an object following its schema. Values may be references.
summary Summary Text no One sentence the colleague reads about this action.
assignee For User no Only with propose: the colleague who decides. User id or a reference such as {{trigger.recordedByUserId}}.
deadlineMinutes Deadline (minutes) Number no Only with propose: minutes until the proposal expires. 7 days by default, at most 30 days.

A new step starts with {"mode": "propose"}.

Exits

Exit Label When
executed executed The action has been carried out.
failed failed The action failed, or was not possible: the plugin is not connected or is switched off, it is not an action of that plugin, or the action is switched off for this organisation.
rejected rejected A colleague rejected the proposal.
expired expired Nobody decided before the deadline.

Output fields

Field Label Content
result Result The plugin’s answer.
status Status Executed, Failed, Rejected or Expired.
input Parameters The parameters the action was actually carried out with.
edited Edited by a person true if a colleague edited the parameters.
executedBy Executed by Who carried it out; empty with execute.
error Error The error, if there was one.
rejectedBy Rejected by Who rejected it.
rejectionReason Reason for rejection Why.
actionId Action The id of the action.

Good to know

  • When you publish, aishaa only checks whether action has the form pluginId/operationId. Whether the action exists in the organisation only becomes clear when the step runs (then failed). So only use actions from the organisation’s list.
  • A proposal lands in To do and on the ticket if the run has one. An action that has been carried out reaches the plugin as an automation.
  • Without connected plugin actions in the organisation you cannot use this block.

document.create: Make a document

Makes a PDF from a text, such as a report an ai.transform step wrote, and keeps it with the customer (with their documents) or, without a customer, with the organisation. A plugin action in the same run may always send that document along.

Input

Name Label Type Required Explanation
title Title Text yes The heading of the document and also the file name. Longer than 120 characters is shortened.
text Text LongText yes The text, usually a reference such as {{verslag.text}}. A line starting with # becomes a heading; with - a bullet. At most 200,000 characters.
customer Customer Text no The id of the customer the document goes to. By default the customer of the run.

Exits: none; continues with next.

Output fields

Field Label Content
attachmentId Document The id of the document. Pass this in the parameter of the plugin action that accepts an attachment.
fileName File name The title with .pdf.
sizeBytes Size In bytes.

Good to know: if the step runs again (for example after a disruption), it finds the document it already made and does not make a second one. If the run is about several customers without customer, the step fails. When you try out a workflow, the step makes no document; it only states the file name.

object.read: Read an object (can no longer be added)

This block used to read the content of an object, such as the transcript of a recording. It still works in workflows that already use it, but you can no longer add it and it is no longer in the guide for AI assistants. Use the content field instead, for example {{trigger.recording.transcript}}.

Good to know

  • All calls happen within the run’s organisation, through the plugin’s first switched-on connection.
  • Reading (plugin.read, record.find, record.read) changes nothing. So when you try out a workflow, aishaa really reads, and you only see data you may see yourself. A plugin action is never carried out when you try out a workflow.
  • Do not let the AI calculate with what you fetch. Use data.format for dates, amounts and lists.

Related

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