Skip to main content
Corsa Workflows let compliance teams automate repeatable operational steps without code. Build a workflow visually, choose what should trigger it, add blocks for decisions and actions, then activate it when ready. Use workflows to reduce manual handoffs across onboarding, transaction monitoring, alert triage, case operations, member screening, periodic reviews, and external system integrations.

How It Works

  1. Choose a trigger — an event in Corsa (client, member, transaction, alert, or case created or updated), a calendar schedule over a client population, or manual run from a record page.
  2. Add blocks — update records, screen clients, run AI analysis, branch on conditions, notify analysts, reach out to clients, or call external APIs.
  3. Save changes as a draft until the workflow is ready.
  4. Activate the workflow so it runs automatically (or on demand, for manual workflows).
  5. Review each execution in workflow history — step outcomes, linked records, and audit entries.
Workflows react after events. Real-time transaction blocking belongs in transaction monitoring rules, not workflows.

Workflow Builder

The builder is a visual canvas. Every workflow starts with a Trigger block, then flows through one or more blocks connected parent to child.

Available blocks

Blocks that share the same parent run in parallel. Chain blocks sequentially when a later step needs an earlier step’s output. You can rename workflows and blocks, add branches, and discard unsaved changes before publishing.
Keep workflows small and focused. A workflow that owns one operational outcome is easier to review, test, and audit.

Action

Each Action block has an action type. Choose the type first, then configure it.

Customer interaction

Reach out to a client by email or form:
  • Content sourceUse Email Template or Use Form Template.
  • Cover message — Message that accompanies the email or form link. The template body is not editable in the workflow builder.
  • Use Client from — Upstream step or trigger entity that supplies the client to contact.
  • Missing client or form mismatch — Skip the step or Stop workflow. A stopped run is intentional, not a system error.

Client reminders

Optionally send automatic reminders until the client completes the required action: Configure the interval between reminders (minutes through months) and the maximum number of reminders (1–100; default 3).

Deep Research

Run automated client research as a workflow step:
  • Use Client from — Resolve the client from the trigger or an upstream step (individual client, corporate client, alert, or case context).
  • Research SpeedFast or Slow (thorough).
Deep Research in a workflow is the same capability as deep research on a client profile, but scheduled and repeatable through automation.

PEP / Sanctions screening

Re-screen a client inside a workflow:
  • Use Client from — Same resolution pattern as Deep Research.
  • Screening Type — Person, Company, or Entity (generic).
  • Score Threshold — Match confidence from 0 to 1 (default 0.5).
  • Dataset — Default (all), Sanctions only, or PEPs only.
  • Create alert on match — Optionally open a screening alert with priority and category when matches exceed the threshold.

Record

Create or update Corsa entities. Each Record block has an operation: Use record from — Select which upstream step or trigger supplies the entity to update (same pattern as Use Client from on Action blocks). Conditions — Optional filters so the update runs only when field values match (for example, only update when priority is High). Custom fields — Available on client and alert updates where your platform defines them.

Create Alert — Create date

When creating an alert, choose when it should be generated:
  • Immediately (default)
  • In X days, In X weeks, or In X months
Delayed alert creation supports periodic reviews, recurring monitoring, and follow-up alerts scheduled relative to the triggering event.

Escalate and update case

In one workflow run:
  1. Update Alert with status Escalated to open a case.
  2. Add a downstream Update Case Record step — Corsa resolves the case created by the escalation so later steps target the correct record.
When you create an alert with a static category that cannot re-match the workflow’s own trigger filters, Corsa still allows you to save and activate the workflow.

Notify

Send a message to analysts on your team:
  • Channels — In-app, email, and/or Slack (Slack requires an active Slack integration).
  • Recipients — Specific platform users and/or external email addresses.
  • Slack channels — When Slack is enabled.
  • Message — Free text with smart data variables ({{entity.fieldName}}, prior step outputs, and more).
  • Context from — Upstream step whose entity data populates variables (same pattern as Action blocks).
Notify blocks are for analyst-facing messages you configure in the workflow. They are separate from automatic workflow failure notifications.

Branch

Split the workflow into conditional paths:
  1. Add a Branch block — Corsa creates two Branch Path children automatically.
  2. Configure conditions on each path using entity fields, trigger filters, or outputs from upstream steps (including Agent block results).
  3. Add blocks under each path — paths run in parallel when their conditions match.
Supported operators depend on the field type — for example equals, not equals, in/not in, greater/less than, between, and transitioned (field changed from one value to another). Use transitions for patterns like risk level moving from Medium to High.

Webhook

Call an external HTTPS API from a workflow:
  • URL and method — GET, POST, PUT, PATCH, or DELETE.
  • Query parameters, headers, and request body — JSON with smart data variables in quoted strings.
  • Credential — Optional vault-stored credential for authenticated calls.
  • Timeout and retries — Configure resilience for external dependencies.
  • Continue on error — Optionally proceed when the call fails.
Webhook blocks are outbound calls from Corsa during workflow execution. They are not the same as Corsa webhooks (inbound event notifications to your systems).

Agent Block

The Agent block (labeled Agent in the block picker; default name Copilot) runs AI analysis on every workflow execution. Output is available to downstream Branch, Record, Notify, Webhook, and Agent blocks. For ad-hoc analyst chat, use Copilot instead.

Configuring an Agent Block

Every Agent block needs a prompt — the instruction the AI follows at runtime. Prompts support smart data variables ({{entity.fieldName}}, {{trigger.entityType}}, etc.) so the AI receives context from the triggering event automatically.
The instruction the AI follows. Use smart data variables to inject runtime context. For example:
Choose which AI model runs the analysis. Options include Claude (Anthropic) and GPT (OpenAI) models.
Define a JSON Schema for structured output. When set, the AI returns data matching your schema instead of free-form text. This is useful when downstream blocks need to read specific fields from the result.
Enable tool groups so the AI can query live data during execution. Available tool groups:
  • Entity query — Look up client, alert, case, and transaction data.
  • Metrics — Query compliance metrics and statistics.
  • Screening — Run PEP and sanctions screening lookups.
  • Web search — Search the web for public information.
Tools are read-only — the AI cannot modify any data through tools.
Select upstream workflow blocks whose outputs should be included as additional context for the AI. For example, feed a screening result or Record step output into the prompt automatically.
Controls how deterministic or creative the AI response is. Lower values (closer to 0) produce more consistent, factual output. Higher values (closer to 1) allow more variation. For compliance workflows, a low temperature (0.0–0.2) is recommended.
Additional instructions that shape how the AI behaves. These are appended to Corsa’s built-in compliance workflow instructions, which ensure outputs are clean and machine-readable.
Limits the length of the AI response (1–32,000 tokens). Set this to control cost and ensure outputs stay concise.

Using Agent output in downstream blocks

  • Branch — Route on fields in structured AI output (for example isSuspicious is true).
  • Record — Map AI values to field updates via smart data variables.
  • Notify — Include AI-generated text in notification messages.
  • Webhook — Pass AI output in the request body.
  • Agent — Chain multi-step AI reasoning with context from prior Agent blocks.
Use an output schema when you need to branch on AI results or map specific values to record fields. Free-form text works well for notifications and descriptions.

Agent in scheduled workflows

When a scheduled workflow matches multiple clients, the Agent block runs independently for each client. Each execution is isolated — the AI sees only that client’s data.

Triggers

Workflows can start from Corsa events, a calendar schedule, or manual run from a record page.

Event triggers

Event-based workflows run when matching activity happens in Corsa:
  • Individual or corporate client created or updated
  • Individual or corporate member created or updated
  • Transaction created or updated
  • Alert created or updated
  • Case created or updated
Add filters so the workflow runs only when the event matches your criteria. Filter options depend on entity type. The builder shows the full list for your trigger; common examples: Date and time filters — Relative date fields (such as created at and updated at) support equal and between. Absolute date fields support comparison operators. Time since fields (such as time since onboarding) express duration relative to the event. Transition filters — On supported fields (such as risk level), use transitioned to match when a value changes from one state to another — for example, risk level transitioned from Medium to High.
Member triggers do not include a dedicated KYC status filter. Use screening status filters or client-level KYC fields on the parent client trigger instead.

Scheduled triggers

Scheduled workflows run on a calendar — not a sub-minute interval:
  • Recurrence — Daily, weekly, or monthly
  • Time and timezone — When the run executes
  • Days of week — For weekly schedules
Each run evaluates individual clients or corporate clients matching your trigger filters and executes the workflow once per matching client. Use scheduled workflows for periodic review, dormant-client checks, and recurring controls.

Manual triggers

Enable manual run on a workflow to let analysts start it from a record page:
  • Alert, case, individual client, corporate client, or transaction detail pages
  • Only active workflows eligible for that entity type appear in the run menu
Manual runs use the selected record as trigger context. Combine with event triggers on the same workflow definition where your platform supports both.

Draft, Active, Inactive, and Archived

When you activate a workflow, Corsa validates structure first — incomplete or invalid workflows do not go live.

Execution History

Each workflow keeps a history of runs. The list shows status, start and completion time, duration, creator, failed step, and linked results.

Execution statuses

Open an execution to inspect the timeline — per-step status, output, and errors. When a workflow creates or updates a linked result, Corsa shows it in execution detail so analysts can jump to the affected record.

Workflow failure notifications

When an alert- or case-triggered workflow fails, Corsa sends an in-app notification to the alert or case assignee (when one is set). See workflow failure notifications for details.

Audit Log

Corsa records workflow activity in the platform audit log so your team can review who changed what and when workflows ran.

Workflow runs

When a workflow executes from an event or schedule, the audit log shows that the workflow run started — not that the author manually clicked run. Manual runs are attributed accordingly.

Workflow changes

When you edit or activate a workflow, the audit log captures definition changes with detail where available:
  • Workflow name changed
  • Trigger event or schedule changed (including before and after values)
  • Blocks added, removed, or modified (Action, Record, Notify, Branch, Agent, Webhook)
Audit log wording aligns with the product UI — for example, Deleted and Activate rather than internal-only terms.

Common Use Cases

Alert triage automation

When a high-priority alert is created, assign ownership, update priority, notify the compliance team, and branch on category or rule name.

Case operations

When a case is updated, change status or assignee, notify reviewers, or trigger customer follow-up.

Escalate and update case

Escalate an alert to a case and update case fields — priority, assignee, or status — in the same workflow run.

Client review controls

Run scheduled daily or weekly scans over clients and start review actions when risk or activity criteria match.

Member screening follow-up

When a member’s sanctions, PEP, or adverse media status changes, send a form request or create an alert for analyst review.

Periodic review alerts

Create an alert with a delayed create date — for example, 90 days after a client update — for recurring reviews.

Form RFI with reminders

Send a form template and automatically remind the client until they submit, without manual follow-up.

PEP/sanctions re-screen

On client update, run PEP/Sanctions screening in the workflow and open a screening alert when matches exceed your threshold.

Transaction follow-up

When a transaction is created or updated, branch on type or status and create downstream compliance work.

AI-powered alert enrichment

On new alert, use an Agent block to summarize entity history and populate alert fields before routing to a reviewer.

External system sync

On case update, call your ticketing or case-management system via a Webhook block with vault credentials.

Manual analyst playbook

Enable manual run so analysts start a standardized workflow from an alert or case detail page on demand.

Best Practices

  • Start with a narrow trigger and add filters early.
  • Use transitioned filters when you care about field changes, not just current values.
  • Use branches for meaningful business decisions, not cosmetic structure.
  • Remember sibling blocks run in parallel — chain steps when order matters.
  • Keep record updates explicit so analysts can understand what changed.
  • Review execution history after activation to confirm behavior.
  • Pause inactive workflows instead of deleting operational history.
  • Use Stop workflow when halting is the correct outcome; use skip when downstream steps should still run.
  • Use Agent output schemas when branching on AI results.
  • Test Webhook blocks with the builder’s test request before activating.