packages/twenty-docs/user-guide/workflows/capabilities/workflow-actions.mdx
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Actions define what happens after a trigger fires. You can chain multiple actions together to build complex automations.
<Tip> - Use the variable picker (click the `(x+)` icon) to browse available data from previous steps - Hover over any input field to see which step a variable comes from — helpful when the same field (e.g., ID) exists in multiple previous steps - Give each action a descriptive name for easier maintenance </Tip>Adds a new record to a selected object.
Configuration:
Output: The newly created record data is available for use in subsequent steps.
Modifies an existing record in a selected object.
Configuration:
(x+). You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add a Search Record step before this Update Record step.Output: The updated record data is available for use in subsequent steps.
Removes a record from a selected object.
Configuration:
Output: The deleted record data remains available for use in subsequent steps.
Finds records within a selected object using filter conditions.
Configuration:
Output: Returns matching records that can be used in subsequent steps.
<Note> **Limit**: Search Records returns a maximum of **200 records**. If you need to process more, add specific filters to reduce results or use scheduled workflows to process in batches. </Note>Best Practice: Use branches after Search Records to handle "found" vs "not found" scenarios.
Creates a new record or updates an existing one based on matching criteria. This is useful when you're not sure if a record already exists.
Configuration:
Matching usually works even better when adding only one unique identifier. For example, the screenshot below will match companies based on their domain. The ID is not necessarily needed. </Note>
How it works:
Output: The created or updated record data is available for use in subsequent steps.
Loops through an array of records returned from a previous step, allowing you to perform actions on each record individually.
Configuration:
Select the array of records from a previous step (e.g., results from Search Records, from a Manual trigger with Bulk availability, from a code node)
Define the actions to perform on each record in the loop.
<Note>You can add several actions within an iterator.
When using branches inside an iterator, make sure the last step of each branch connects back to the iterator to close the loop.
</Note>Access Current Item Fields: to use fields from the record currently being processed, click on the Iterator step, then select Current item. The list of available fields from that record will be displayed and can be selected for use in subsequent actions.
Filters records based on specified conditions, allowing only records that meet the criteria to pass through.
Configuration:
IS operator can be used with numeric fields. It performs as an EQUAL.
</Note>
Pauses workflow execution for a specified duration or until a specific date/time.
Delay Types:
| Type | Description |
|---|---|
| Duration | Wait for a specific amount of time (days, hours, minutes, seconds) |
| Scheduled Date | Wait until a specific date and time |
Configuration for Duration:
Configuration for Scheduled Date:
Use cases:
Limits & Credits:
Sends an email from your workflow. This is great for templated group emails. Emails will look like the ones you send from your mailbox. Not suited for newsletters (which require richer formatting) or automated email sequences.
Prerequisites: Add an email account in Settings → Accounts
Configuration:
You can only send emails from mailboxes synced to your own Twenty account. Sending from other team members' mailboxes (e.g., the account owner's email) is on the roadmap. </Note>
For all the following steps, you can reference variables from previous steps for personalization.
Only one recipient is possible at the moment. </Note>
Adding HTML signatures is not possible at the moment. </Note>
Prompts a form during workflow execution to collect user input. The responses can then be used in subsequent steps to create records, send emails, or execute any other action based on the input. <Warning> Forms are designed for manual triggers only. For workflows with other triggers (Record Created, Updated, etc.), forms are only accessible via the workflow run interface, which is not the expected user experience. A notifications center will be released in 2026 to properly support forms in automated workflows. </Warning> Configuration:
Placeholder (optional)Output: Form responses are available for use in subsequent steps.
Example: The "Quick Lead" workflow is available by default in all workspaces, available anywhere in the Command Menu Cmd + K.
How to fill the form:
Cmd KSubmit.
<Note>
The fields cannot be made mandatory. </Note>
<VimeoEmbed videoId="1147277989" title="Video demonstration" />Runs custom JavaScript within your workflow.
Configuration:
Sends a request to an external API as part of your workflow.
Configuration:
Runs an AI agent within your workflow to perform intelligent tasks.
Configuration:
What AI Agents can do:
Output: The AI agent's response is available for use in subsequent steps. If the agent has a structured output schema, the response will follow that format.
<Note> AI Agent actions consume workflow credits based on the AI model used. See [Workflow Credits](/user-guide/workflows/capabilities/workflow-credits) for details. </Note> <Note> AI agents respect role-based permissions. You can assign specific roles to agents under **Settings → Roles** to control what data they can access. See [Permissions](/user-guide/permissions-access/capabilities/permissions) for details. </Note>