Built-in steps
Flow steps that work on your workspace's own records and files (obligations, the customer map, evidence matrices, statements, and reading and making files) without connecting another app.
Updated 12/10/2026
Most flow steps read from or write to an app you connected, such as Xero or Salesforce. Built-in steps work on records Nexra keeps for your workspace instead, so they need no connection:
Obligations: add, find, change and complete contract obligations.
Customer map: find the customers an asset or segment serves.
Evidence matrices: save a matrix for a person to review.
Statements: make a statement for approval, and read it once approved.
Files: read the text and tables of a PDF, Word, Excel, PowerPoint or CSV file, and make Excel workbooks, CSV files and decks from your own PowerPoint template.
For example, a flow can read newly signed contracts, add an obligation for each with a built-in step, and let Nexra remind the owner from then on. Or it can take an interruption on one asset, find the affected customers with a built-in step, then send each one an approved notice.
Ask Nexra Agent for what you want in plain words, for example "add an obligation for every newly signed contract", and it builds the flow with these steps for you to approve. Developers can also add them to a flow definition over the API, as shown below.
The operations
| Operation | What it does | Changes a record? |
|---|---|---|
obligations.create | Add an obligation, so Nexra reminds the owner before it is due | Yes |
obligations.list | Find obligations, for example the ones due soon under one agreement | No |
obligations.update | Change an obligation's details, due date or schedule | Yes |
obligations.complete | Mark the current due date done; a repeating one moves to its next due date | Yes |
evidence_matrix.create | Save rows by criteria with their evidence, and open a review task | Yes |
asset_customers.list | List the customers of one asset or segment, with their CRM ids | No |
statements.generate | Make a monthly volume statement; it waits for approval | Yes |
statements.get | Read a statement; the document is given only once it is approved | No |
files.extract_text | Read a file's text page by page, for quotes with page numbers | No |
files.extract_tables | Read a file's tables, with the page or sheet and first cell of each | No |
files.generate_xlsx | Make a workbook: Data, Calculations (live formulas), Sources and Read me | Makes a file |
files.generate_csv | Make a CSV file from rows | Makes a file |
files.generate_pptx | Fill the {{placeholders}} in your own PowerPoint template | Makes a file |
Files
A file step works on a file Nexra holds: one a download step copied from OneDrive, SharePoint, an Outlook attachment, Google Drive, Box or Dropbox, or one a step made. Open the step in the flow builder and choose Choose a file to try to see exactly what it reads. Each run's details list the files it read or made, with Download and Preview. To put a made file in OneDrive, SharePoint or Google Drive, add a save step after it; saves follow your approval rules and never overwrite a file unless you choose to.
Nexra reads up to 25 MB per file and 500 PDF pages. It never runs macros, and it can't read text from scanned images yet: those pages are reported so you can ask for a text PDF.
How they behave
Your workspace only. They act on this workspace's records and never reach another system. Anything that sends their result out (an e-mail, a CRM update) is an ordinary write step and follows your approval policies.
People still decide. Evidence matrices open a review task and statements open an approval. A different person decides each one, in the name of whoever approved the flow's run.
Never twice. Each record's result is saved as soon as it is made, so a retried run reuses it and never adds a record twice.
Clear stops. If a value is missing or wrong (an unknown id, a date in the wrong format), the record stops for review with a plain reason instead of retrying. Fix it and retry the record.
Limits. A built-in step runs at most 500 times in one run; records beyond that stop for review so you can retry them.
Recorded. Records a flow adds are marked as coming from that flow and run in the audit trail.
In a flow definition
A built-in step has kind: "builtin", an operation and an input that maps each field to a value from an earlier step or a typed value, just like a write step's fields.
{
"key": "track",
"kind": "builtin",
"label": "Track the obligation",
"operation": "obligations.create",
"input": {
"reference": { "ref": { "step": "contracts", "field": "reference" } },
"counterparty": { "ref": { "step": "contracts", "field": "counterparty" } },
"text": { "value": "Send the monthly volume statement" },
"dueDate": { "ref": { "step": "contracts", "field": "firstStatementDue" } },
"recurrence": { "value": "monthly" },
"sourceClause": { "value": "7.2" }
}
}Later steps can use the result, for example { "ref": { "step": "track", "field": "id" } }. asset_customers.list and obligations.list return { count, items }, so a following step can repeat for each item.
| Operation | Required input | Optional input |
|---|---|---|
obligations.create | reference, counterparty, text, dueDate | recurrence, sourceClause, reminderLeadDays, ownerTeam, evidenceLinks |
obligations.list | status, reference, q | |
obligations.update | id | any field of obligations.create |
obligations.complete | id | evidenceLinks |
evidence_matrix.create | title, criteria, rows | subject, questions |
asset_customers.list | asset | |
statements.generate | customerName, periodStart, periodEnd, days | customerRef, unit, invoices, title, note |
statements.get | id |
When you save the flow, Nexra checks each built-in step and explains in plain words what to fix: choose an operation, fill a required field, or remove a field the operation doesn't use.
GET /api/console/connect/builtin-operations lists every operation with its fields and results, in the same shape as a connector's actions. It needs the connect.records.read permission.