Appearance
Steps
A step is a unit of processing that a workflow runs in order from top to bottom. Add one from Add step in the editor, and drag to reorder. See Limits for the maximum number of steps.
Steps are grouped as follows when you add them.
| Group | Contents |
|---|---|
| Codatum actions | Run Query / Run Report / Screenshot / Email / LLM / HTTP Request |
| Slack | Connected Slack workspaces (shown by Slack workspace name) |
Each step can have an execute-if condition. For embedding values in the body, messages, and so on, see Template variables.
Run Query
Runs the specified saved query and makes the result available to later steps.
| Item | Description |
|---|---|
| Query | The saved query to run. You select it together with its connection |
Later steps can reference up to 20 rows of the result through template variables (see Limits). For example variables, see Template variables.
If you create a workflow from the right sidebar on a query detail, this step opens already configured.
Run Report Beta
Runs a report. Placing it right before a Screenshot step lets you capture the latest results.
INFO
This feature is in beta. The specification might change without notice.
| Item | Description |
|---|---|
| Report | The report to run |
| Use default parameters | Off by default. When on, resets parameters to the report's default values before running |
| Timezone for relative dates | Shown when Use default parameters is on. UTC is used if not set |
| Update report after run | Off by default. When on, saves the run's results back to the report |
Screenshot Beta
Captures a specific report page as a PNG. The resulting file URL can be used in a later Email or Slack attachment.
INFO
This feature is in beta. The specification might change without notice.
| Item | Description |
|---|---|
| Report | The target report |
| Page | The page to capture |
| Run ID | The ID of the report run. If a Run Report step immediately precedes this one, a template variable referencing that step's runId might be filled in automatically |
| Format | Type is PNG only. Theme is Light / Dark (default is light). Locale is en-US / ja-JP (defaults based on browser language) |
Email
Sends email to users or groups in the workspace.
| Item | Description |
|---|---|
| To | Choose 1-20 users or groups (Limits) |
| Subject | Up to 200 characters. Supports template variables |
| Body | Sent as HTML. Supports template variables (up to 5,000 characters) |
| Attachment | Optional. You can specify a file URL from an earlier step, such as Screenshot, using a template variable |
The sender is noreply@workflow.codatum.com. The email footer includes a link back to the workflow.
LLM
Runs natural language processing using an AI profile. Not selectable if Codatum AI is disabled for the workspace. When the workflow runs, the context (notebooks or folders) linked to the AI profile isn't loaded.
| Item | Description |
|---|---|
| AI Profile | The AI profile to use. Create and review profiles under AI Profile settings |
| Prompt | The content sent to the LLM. Supports template variables (up to 5,000 characters) |
HTTP Request Beta
Sends an HTTP request to the specified URL. You can send query results or LLM output to an external service that accepts webhooks.
INFO
This feature is in beta. The specification might change without notice.
| Item | Description |
|---|---|
| Method | Choose GET or POST. The default when you add the step is POST. |
| URL | The destination. Specify an http or https URL. You can use template variables. |
| Headers | Select Add header to specify a key and value, up to 50 headers (see Limits). Keys can be up to 128 characters, and values up to 2048 characters. Values can use template variables. When you add the step, Content-Type: application/json is already set. |
| Body | Choose None or JSON. The default when you add the step is JSON. JSON content can use template variables (up to 5000 characters). When Method is GET, the body is fixed to None. |
Header values are saved as part of the workflow definition. Users who can view the workflow can see the values in the editor.
Sending and results
| Item | Description |
|---|---|
| Template expansion | The URL, header values, and body are sent after template variables are expanded at run time. If the expanded body isn't valid JSON, the step fails. |
| Headers added automatically | Every request includes X-Codatum-Workspace-Id (the workspace ID) and X-Codatum-Workflow-Id (the workflow ID). If the body is JSON and there's no Content-Type header, Content-Type: application/json is added. |
| URLs you can't send to | The step fails if the host is localhost, ::1, or an IP address that starts with 127., 10., 192.168., 169.254., or 172.16. through 172.31.. |
| Timeout | 30 seconds (see Limits). |
| Success | The step succeeds when the response status code is below 400. |
| 4xx responses | The step fails without retrying. |
| 5xx responses, timeouts, and connection errors | The step retries automatically after a delay. If the retries don't succeed, the step fails. Each retry sends the request again, so the destination might receive the same request more than once. |
| Output | Later steps can reference the response status code (statusCode). It isn't shown in Insert variable. The response body can't be referenced. |
To embed query results or LLM output in the body, convert them to JSON values with the json filter. Values that contain line breaks or " break the JSON if you embed them as is. The json filter output already includes ", so don't wrap it in ". This example references a Run Query step with the step ID query and an LLM step with the step ID llm.
liquid
{
"text": {{ llm.text | json }},
"rows": {{ query.rows | json }}
}Slack
Sends a message to a specified channel. You must connect the workspace to Slack first.
Connecting Slack
- Open global nav > Workspace settings > External integrations > Slack integration.
- Select Connect Slack and approve the app in Slack.
The Codatum app joins a public channel automatically when it delivers there for the first time. Slack records the app joining in its audit log. For a private destination channel, add the app with /invite @Codatum. If a channel doesn't appear in the list, check that the app has been invited there.
You can also open the same settings screen from Slack integration settings when adding a step.
Re-authenticating
Use Re-authenticate when notifications fail or you need to refresh Slack permissions. This keeps the existing connection, so Workflow and Routine destinations keep working. If you Disconnect and connect the same Slack workspace again, you do not need to reselect those destinations.
- Open global nav > Workspace settings > External integrations > Slack integration.
- On the connection, select Re-authenticate and approve the app in Slack.
Settings
The display name is the connected Slack workspace's name.
| Item | Description |
|---|---|
| Channel | The destination. Select Refresh channels to fetch the list again |
| Message Text | Supports template variables (up to 5,000 characters). For formatting syntax, see Slack's message formatting guide |
| File | Optional. You can specify a file URL from an earlier step |
| Thread (optional) | Specify the message timestamp from an earlier Slack step to reply in that thread |
| Include Link to Codatum | On by default. Adds a link back to the workflow. Viewing the link requires owner permission |