Skip to main content
Slack alert posts a message to a Slack channel for every document that reaches it. The message is a template: you write the text once, and placeholders fill in with the document’s extracted values and its Validate verdicts. It lives in the Alerts section of the Studio palette and is in Beta. It is a terminal node. Put it at the end of a branch, usually the true branch of an If/Else, so it fires only on the documents you want to hear about. It needs the Slack connector. Connect your workspace once per organization: Slack integration.

The node

The Python builder (client.workflow(...).parse().extract(...)) has no slack_alert() verb. Build a WorkflowDefinition from the node classes instead, as above, and pass it to create_workflow. The TypeScript builder has no method either; send the JSON. channel_id is the Slack channel id (C…), which is stable across renames. Get it from the Studio channel picker, or from Slack: open the channel details, and the id is at the bottom. channel_name is the display name shown in the app and in logs; it is not re-resolved on every send.

In Studio

Click the Slack alert node on the canvas to open its panel. It has a Slack Channel picker that lists your public channels, a Message editor where / or the field picker inserts an extracted field as a chip, a Severity choice (Info, Warning, Critical), and a Preview of the rendered message with a Send test button that posts it to the chosen channel. If nobody has connected Slack for your organization yet, the panel shows a Connect Slack prompt instead. That is what a workspace sees until the connector is set up: The Slack alert panel before Slack is connected

Options

The schema the API accepts is generated from the same source: Slack alert node schema.

Placeholders

A validation placeholder needs a Validate node upstream that carries the rule. A placeholder that resolves to nothing, because the field was renamed, deleted, or not extracted for this document, or the rule did not run, renders as <missing: …> in the delivered message. Nothing is dropped silently.

What it returns

A message in the channel, and nothing in the run results. Each message carries:
  • The rendered template, with the severity colour on the card.
  • An Open document button that opens the file in Studio at the workflow version the alert fired against.
The alert fires after the node before it finishes for the document. Behind an If/Else, it fires only when the document took that branch. Deliveries are capped per organization at 60 per minute and 500 per hour; alerts over the cap are dropped for that window, not queued. Details and troubleshooting: Slack integration.

Connects to

Parse, Classify, and Split cannot feed it: they carry no extracted fields for the template to fill. The API rejects those edges.

Billing

Free. Slack alert runs no model and bills no credits. Test messages from Studio are free too. Full price list: How credits work.

Examples

  • Invoice processing: post every invoice over 10,000 to #finance with the If/Else on that page in front of this node.
  • Contract analysis: alert legal when a contract’s key clause fails an AI validation rule, with ${validation.<rule_id>.detail} in the message.