Actions are the building blocks of workflows that perform specific operations. Connect multiple actions to build complex automated processes.
Make requests to external APIs:
Type: HTTP
Method: POST
URL: https://api.example.com/endpoint
Headers:
Authorization: Bearer {{secrets.api_key}}
Content-Type: application/json
Body: |
{
"order_id": "{{trigger.entity.id}}",
"status": "confirmed"
}
Timeout: 30000
Properties:
| Property | Description |
|---|---|
| Method | GET, POST, PUT, DELETE, PATCH |
| URL | Target endpoint with variables |
| Headers | Request headers |
| Body | Request body (for POST/PUT) |
| Timeout | Max wait time in milliseconds |
Use cases:
Send email notifications:
Type: Email
To: [email protected]
Subject: Order {{order.number}} Confirmed
Body: |
Dear Customer,
Your order has been confirmed.
Order Number: {{order.number}}
Total: {{order.total}}
Properties:
| Property | Description |
|---|---|
| To | Recipient email address |
| Subject | Email subject line |
| Body | Email content |
Use cases:
Execute SQL operations:
Type: Database
Operation: select
Query: SELECT * FROM products WHERE id = {{input.product_id}}
Operations:
| Operation | Description |
|---|---|
| select | Query data |
| insert | Add new records |
| update | Modify existing records |
| delete | Remove records |
| raw | Execute custom SQL |
Use cases:
Transform and map data:
Type: Transform
Expression: |
{
"customer_name": {{order.customer.name}},
"items": {{order.items}},
"total": {{order.total}}
}
Use cases:
Log information for debugging:
Type: Log
Level: info
Message: Processing order {{order.number}}
Log levels:
| Level | Use |
|---|---|
| debug | Detailed debugging |
| info | General information |
| warn | Warning conditions |
| error | Error conditions |
Use cases:
Pause workflow execution:
Type: Delay
Duration: 5000
Properties:
| Property | Description |
|---|---|
| Duration | Wait time in milliseconds |
Use cases:
Actions execute in order when connected:
Trigger → Action 1 → Action 2 → Action 3
Use conditions to create branches:
Trigger → Condition
├── True → Action A
└── False → Action B
Access data using double braces:
{{variable.path.to.value}}
| Source | Syntax |
|---|---|
| Trigger data | {{trigger.data.field}} |
| Previous step | {{steps.stepName.output.field}} |
| Entity data | {{trigger.entity.fieldName}} |
Email body: "Order {{trigger.entity.order_number}} created"
HTTP body: {"id": "{{steps.query.output.id}}"}
URL: "https://api.example.com/orders/{{trigger.entity.id}}"
When an action fails: