| title | Workflow Actions |
|---|---|
| description | Learn about the actions available in Twenty workflows. |
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.
- 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<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}}/>
Adds a new record to a selected object.
Configuration:
- Select the target object
- Fill out the required and optional fields
- Use data from previous steps or input values manually to populate fields
Output: The newly created record data is available for use in subsequent steps.
Modifies an existing record in a selected object. <img src="/images/user-guide/workflows/update_record.png" style={{width:'100%'}}/>
Configuration:
- Select the target object
- Choose the specific record to update.
- You can either choose a fixed record, using the drop down menu displaying all available records.
- Or you can have the record dynamically selected, by designating a record found in a previous step, using the
(x+). You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add aSearch Recordstep before thisUpdate Recordstep.
- Select fields to modify and enter new values
Output: The updated record data is available for use in subsequent steps.
Removes a record from a selected object.
Configuration:
- Select the target object
- Choose the specific record to delete
Output: The deleted record data remains available for use in subsequent steps.
Finds records within a selected object using filter conditions.
Configuration:
- Select the object to search
- Set filter criteria to narrow results
- Configure sorting and limits
Output: Returns matching records that can be used in subsequent steps.
**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.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.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}}/>
Configuration:
- Select the target object
- Note which fields can be used for matching: email for People, domain for Companies, ID for any object, or any field marked as Unique. You'll need to populate at least one of these below.
- Fill out the field values. Do not forget to populate at least one of the unique identifiers.
How it works:
- Searches for a record matching your criteria
- If found → updates the existing record
- If not found → creates a new record
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.
- Access
Current ItemFields: 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:
- Select the record to filter
- Define filter conditions and criteria
- Configure which records should pass through to subsequent steps
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:
- Set days, hours, minutes, and/or seconds
- Combine multiple units (e.g., 2 days and 4 hours)
Configuration for Scheduled Date:
- Select a date and time
- Can reference a date field from a previous step (e.g., follow up 3 days after a meeting)
Use cases:
- Wait 24 hours before sending a follow-up email
- Pause until an opportunity's close date
- Schedule actions for business hours
Limits & Credits:
- No maximum duration limit—you can set delays of minutes, days, weeks, or longer
- 1 credit consumed when the Delay node executes, regardless of duration
- No credits consumed while waiting—a 5-minute delay costs the same as a 5-day delay
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:
- Select the sender email account
For all the following steps, you can reference variables from previous steps for personalization.
- Enter recipient email address.
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. 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. Configuration:
- Configure the fields that users will be asked to fill. For each field, choose
- a type among text, number, date, a given record, a select field. Select fields from all objects are available.
- a label
- a default value under
Placeholder(optional)
- Edit the form title
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:
- Trigger your manual workflow from the command menu
Cmd K - Fill the form that is displayed in the side panel and click
Submit.
Runs custom JavaScript within your workflow.
Configuration:
- Access variables from previous steps. You can edit the variables names dynamically.
Sends a request to an external API as part of your workflow. <img src="/images/user-guide/workflows/http_action.png" style={{width:'100%'}}/>
Configuration:
- Enter the API endpoint URL. Using parameters from previous steps is possible.
- Select HTTP method (GET, POST, PUT, PATCH, DELETE)
- Add required headers and values
- Provide sample response for structure preview
Runs an AI agent within your workflow to perform intelligent tasks.
Configuration:
- Agent: Select an existing AI agent or use the default agent
- Prompt: Write the instruction for the AI agent
- Reference variables from previous steps in the prompt
What AI Agents can do:
- Analyze and summarize data
- Classify or categorize records
- Generate text content
- Make decisions based on data
- Interact with your CRM data using tools
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.
AI Agent actions consume workflow credits based on the AI model used. See [Workflow Credits](/user-guide/workflows/capabilities/workflow-credits) for details. 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.