Action Components
Action components perform operations like sending notifications, creating records, or updating data. They’re typically the “end points” of your automation flows.Important: Action components always execute their side effects when reached, even if their outputs aren’t connected to downstream nodes. This ensures emails are sent, tasks are created, etc.
Communication Actions
Send Email V2
Sends an email to specified recipients.Configuration
Approval before sending
When HIL Enabled is on, the flow pauses and the approver you chose reviews the drafted email in Statisfy. They can edit the To and CC recipients, subject, and body, then approve to send it or reject it. This works with both Gmail and SendGrid.Citations
When the body uses the output of a Stella or Pre-Built Agent node with Enable Citations on, each cited source appears as a numbered link ([1], [2]) and a References list at the end names each source. Citations link into Statisfy, so they are sent only when every recipient is internal:- Email: every To and CC address is at your company’s domain (or one of its alias domains) or belongs to a member of your workspace.
- Slack channel: the channel is one Statisfy knows and isn’t shared with another organization (Slack Connect).
- Slack DM: the person is internal by the same rule as email.
Attachments
Attach files to the outgoing email — for example, a PDF summary generated earlier in the flow, or a fixed one-pager you want every send to include.- Up to 10 files per email and 20 MB total across all attachments on a single email.
- Supported types: PDF, Word, Excel, PowerPoint, images (JPEG, PNG, WebP, GIF), plain text, CSV, JSON, and log files.
- When Human-in-the-Loop is in the flow, the approver sees each drafted email’s attachments and can remove any before the email is sent. See Approver review of attachments below.
Example Configuration
Output Data
Returns confirmation of email sent with message ID.Email Template V2
Sends an email using a pre-defined template.Configuration
When to Use
- Consistent branded communications
- Complex email layouts
- Reusable email content across automations
Templates are built in Email Templates and personalized with merge tags such as
{{ contact.name }}.Template variables
Use Template Variables to send templated emails from flows that have no account or contact context, such as flows started by a warehouse trigger. You can also use it to override a value the template would otherwise read from the CRM or the sender. When you pick a template, the node lists everyaccount.*, contact.*, and user.* variable the template uses, plus contact.email. The editor shows how many variables are set as Template Variables (filled/total).
For each variable, enter a literal value or type @ to reference an upstream node’s output:
- Filled values override the value from the CRM record or the sender.
- Empty values fall back to the CRM or sender value.
contact.emailpicks the recipient. If no contact has that address, Statisfy creates one and sends to it. The new contact goes on the flow’s account when the flow has one, and on no account otherwise. It isn’t pushed to your CRM. An existing contact is used as is, and its accounts don’t change.
Attachments
Any attachments saved on the template are sent automatically. Files added on this node are sent in addition to the template’s attachments. The combined set is subject to the same caps as elsewhere: up to 10 files and 20 MB total per email. See Attachments under Send Email V2 for supported file types and approver review behavior.Send Consolidated Email V2
Sends a single email to multiple recipients in a To / CC / BCC layout — useful for digests, weekly roll-ups, and shared announcements. Unlike Email Template V2 (which sends one personalized email per recipient), Consolidated Email sends one message that everyone in the audience receives together.Configuration
When to Use
- Send a weekly account digest to a CSM, their manager, and the AE on CC
- Notify a customer’s executive sponsor and copy the internal team
- Broadcast a release announcement to a curated audience
Attachments
Attachments saved on the selected template are sent automatically. Files added on this node are appended to the template’s attachments and applied to the single consolidated email. The combined set is subject to the same caps: up to 10 files and 20 MB total. See Attachments under Send Email V2 for supported file types and approver review behavior.Approval Behavior
Send Consolidated Email supports Human-in-the-Loop. When approval is required, the pending email shows the full TO / CC / BCC list and the resolved email body so reviewers can confirm the audience before sending.Slack V2
Sends a message to a Slack channel.Configuration
Example Message
Slack Formatting Tips
Slack Channel Manager V2
Creates a Slack channel (or uses an existing one), invites people to it, and can post an opening message.Configuration
Notify User on Slack V2
Sends a direct message from the Statisfy Slack app to a specific person on Slack. Use this when you want to reach an individual privately instead of posting in a channel.Configuration
Resolution Order
If multiple targeting options are configured, Statisfy resolves the recipient in this order:- Explicit email address
- Role on the account (e.g., Account Owner) resolved through the account in flow context
- Falls back to the user attached to the flow context (e.g., the task assignee)
Prerequisites
- Slack integration must be installed
- The target user must have an email that matches a Slack workspace member
- The Statisfy Slack app must be reachable in the user’s workspace
When to Use
- Privately nudge an account owner when their account drops to At Risk
- DM a CSM with the agenda before an upcoming meeting
- Alert the assigned task owner without posting in a public channel
Slack channel messages and DMs are separate components — use Slack V2 to post in a channel and Notify User on Slack V2 to DM an individual.
Send Microsoft Teams Message
Posts a new conversation in a Microsoft Teams channel. The post comes from the Statisfy app.Configuration
Prerequisites
- Microsoft Teams must be connected
- Statisfy must be installed in the channel’s team, and the team must show Ready to send in the Teams settings
Teams has no direct messages, channel creation, or attachments in Agent Studio: there is no Teams version of Slack Channel Manager V2 or Notify User on Slack V2.
Gmail Send V2
Sends an email through a connected Gmail account.Configuration
Prerequisites
- Google Workspace integration must be connected
- The sending user must have authorized Gmail access
When to Use
- Send emails from a specific team member’s Gmail (e.g., the account owner)
- Replies and follow-ups appear in the sender’s Gmail thread
- Use instead of Send Email V2 when you need emails to come from a real person’s inbox
Gmail Reply Listener V2
Listens for replies to emails sent by Gmail Send V2 and triggers downstream actions.Configuration
When to Use
- Wait for a customer to respond to an outreach email
- Trigger follow-up actions based on whether a reply was received
- Build conversational email sequences
Task Management Actions
Create Task V2
Creates a new task in Statisfy.Configuration
Example
Create Task (Advanced) V2
Creates a task with full configuration options.Additional Configuration
Add Task Comment V2
Adds a comment to an existing task.Configuration
CRM Actions
Create Salesforce Case V2
Creates a case in Salesforce.Configuration
Prerequisites
- Salesforce integration must be configured
- User must have appropriate Salesforce permissions
Fields maintained by AI
The custom field actions below can also fill in fields marked Maintained by AI:- The field’s history shows the value as written by a flow. Writing the same value again adds nothing to the history.
- While a person is holding their own value on the field, the flow skips that field and carries on with the others. The action’s result lists it under held fields, with the date the hold ends, and doesn’t count it as updated. Flows saved before this was added show held fields once their actions are updated.
- A field maintained by another Statisfy AI can’t be written by a flow, and neither can a value that doesn’t fit the field’s type. The action stops at that field and fails with a message saying why; fields it already set stay set.
Custom Field Updater V2
Updates custom fields on Statisfy entities.Configuration
Example
Opportunity Custom Field Updater V2
Updates custom fields specifically on opportunities.Configuration
Upstream Custom Field Updater V2
Updates custom fields on parent/related entities.When to Use
- Update account fields from a task automation
- Sync data from child to parent entities
Custom Object Field Updater V2
Updates field values on the instances (records) of a custom object, such as Invoices or Contracts.Configuration
When the flow runs for a specific record, the update is scoped to that record: instances of account-linked objects are limited to the current account, and instances of contact-linked objects to the current contact.
Output
Returnsupdated_count (fields updated) and instance_count (instances matched). If nothing matches, it returns No matching instances found with updated_count: 0.
When to Use
- Update every instance of an account-linked object for the account the flow is running on
- Update only the instances that match a filter on the object’s fields
- Differs from Custom Field Updater V2, which updates fields on Statisfy entities (Account, Contact, Task, and so on) rather than custom object instances
Custom Field Populator V2
Sets several custom-field values on an entity in one step, from a table where each row is a field to write.Configuration
When the field is maintained by AI and the value changes, the Reason is shown in the field’s history, so people can see why the flow set the value. Other fields ignore it.
Output Data
Returns how many fields were updated, and any held fields a person’s hold kept from changing.Project Actions
Create Project V2
Creates a new project from a template.Configuration
Get Project Link V2
Retrieves the URL link to a project.Configuration
Output Data
Document Actions
RTE Document Populator V2
Creates or updates a rich-text document — title, tag, and markdown content — for the account in the flow’s context.Configuration
Fetch RTE Document V2
Retrieves content from a rich text document.Configuration
Pin Content V2
Pins content to an entity for quick access.Configuration
Data Actions
SQL Query V2
Executes a SQL query against your data.Configuration
Example
Output Data
The component returns the query results in two formats:html_table— the results rendered as an HTML table, ready for display (for example, embedding in an email or document).data_table— the results as structured data for programmatic use by downstream nodes and agents. This matches the shape of the Integration Call V2 warehouse-query output, so you can process results from either component the same way.
data_table when a downstream node needs to read individual values or iterate over rows. Use html_table only for display. If the query returns no rows, html_table contains a “No results found” message and data_table has empty columns and rows with row_count: 0.
Get Contact ID from Email V2
Resolves a contact ID from an email address.Configuration
Output Data
AI-Powered Actions
Risk Mitigation Agent V2
Uses AI to generate a risk mitigation plan.Configuration
Output Data
Returns a structured risk mitigation plan with recommended actions.Risk Summarization Agent V2
Creates a summary of risk factors and recommended actions.Configuration
Survey Template V2
Sends a survey to an audience from a saved survey template.Configuration
Template variables work the same way as on Email Template V2. Set
contact.email to send the survey from a flow with no account or contact context, such as a warehouse trigger.
Integration Actions
API Call V2
Makes HTTP API calls to external services with built-in authentication support.Configuration
Example: Call External Webhook
Output Data
All credentials are retrieved securely from Google Secret Manager. Configure your secrets in Settings > Secrets before using authentication. If the service you’re calling is already connected as a Statisfy integration, use Integration Call V2 instead — it reuses the integration’s stored credentials with no secret setup.
Integration Call V2
Calls a connected integration’s API using the credentials already stored for that integration. Unlike API Call V2, you don’t provide a URL or select a secret — you pick an integration your org has connected, and Statisfy resolves the base URL and credentials for you.When to Use Integration Call V2 vs. API Call V2
Use Integration Call V2 when the service you want to reach is already connected in Statisfy. Use API Call V2 for arbitrary external endpoints that aren’t connected integrations.
Configuration
Warehouse Integrations
When you select a warehouse or query-style integration (Snowflake, Postgres, Redshift, BigQuery, MySQL, Databricks, PostHog), the form changes:- The Endpoint field becomes SQL Query — enter the query to run against that warehouse.
- The Method and Payload fields are hidden; they don’t apply to queries.
- The result is returned as a table of rows.
Supported Integrations
Integration Call V2 supports connected integrations including Salesforce, HubSpot, Jira, Zendesk, Rocketlane, Wrike, DevRev, Pylon, Slack, Firefly, DealHub, Google Drive, Chorus, Fathom, Granola, Clari Copilot, Avoma, Attention, Unthread, Qualtrics, and Gainsight, plus the warehouse integrations listed above. Only integrations your org has connected appear in the dropdown.Example: Query Salesforce
Example: Run a Snowflake Query
Output Data
success: false with an error message instead of stopping the flow. Check the success field downstream before using the data. An unsupported integration or invalid JSON payload fails the node immediately.
Integration Call V2 uses the credentials of the integration as connected for your whole org. Any flow can call any connected, supported integration — there is no per-flow authorization step.
Stella V2
Executes natural language business intelligence queries using the Stella AI engine.Configuration
When to Use
- Generate AI-powered account insights within automations
- Run business intelligence queries as part of a workflow
- Get natural language summaries of account data
Output Data
Returns the Stella query response as text.Inside an automation, Stella still has full access to your customer data, but it can only use the MCP server and API tools set to Always allow in Stella’s external tools settings. Tools that need approval aren’t available, because no one is there to approve them while the flow runs.
Workflow Control
Sleep V2
Pauses workflow execution for a specified duration, then automatically resumes. Input data passes through unchanged.Configuration
When to Use
- Wait before sending a follow-up message
- Add a delay between actions (e.g., create task, wait 2 days, check status)
- Schedule time-delayed notifications
Example: Follow-up Reminder
The Sleep component pauses the entire workflow execution. When resumed, data passes through unchanged to the next node.
Human-in-the-Loop V2
Pauses workflow execution for human approval before continuing. The workflow resumes only after a user approves or rejects the request.Configuration
When to Use
- Require manager approval before sending external communications
- Review AI-generated content before it’s sent
- Gate critical actions (e.g., creating Salesforce cases) behind human review
Example: Approval Before Email
Approver review of attachments
When the held draft is an email from Send Email V2, Email Template V2, or Send Consolidated Email V2, the approval view lists each attachment on the drafted message. The approver can:- Remove any attachment from a specific draft before approving.
- Undo a removal from the Pending changes panel to restore an attachment before the draft is approved.
Approval requests appear in the Approvals section in Statisfy. Enable Slack notifications to alert approvers immediately.
Best Practices
Use @ notation for dynamic content
Use @ notation for dynamic content
Always use @ notation to reference data from upstream nodes rather than hardcoding values. This makes your automations flexible and reusable.
Test actions individually
Test actions individually
Use the play button to test each action node before activating the full flow. This catches configuration errors early.
Handle missing data gracefully
Handle missing data gracefully
Add conditions before actions to check that required data exists. This prevents errors when data is unexpectedly missing.
Log important actions
Log important actions
For critical actions, consider adding logging or notifications so you can track what the automation did.
Next Steps
Logic Components
Add conditional routing
Processing Components
Transform your data