Triggers
Automate Project execution with webhooks, schedules, and events
What are Triggers?
Triggers automatically execute your Projects in response to events, without manual intervention. Instead of clicking "Execute" every time, set up Triggers to run your Projects when specific conditions are met.
Types of Triggers
Webhook Triggers
Execute when an HTTP request hits your webhook endpoint.
Use cases:
- Payment notifications (Stripe, PayPal)
- GitHub events (push, PR, issue)
- Form submissions
- Third-party service events
Setup:
- Go to Project → Triggers
- Click Add Trigger → Webhook
- Configure:
- Path:
/webhook/payment-received - Authentication: API key or HMAC signature
- Payload transformation (if needed)
- Path:
- Save → Get webhook URL
- Register URL with external service
Example URL:
https://app.triform.ai/api/in/31460071-17aa-43e8-a0e6-fb22984c0bdc/26420f15-2143-443f-bca9-45c5b0720784This is an API-call that would trigger a certain flow with the {"event": "payment.success", "amount": 99.99, "customer_id": "cust_123"} payload:
curl -X POST 'https://app.triform.ai/api/in/31460071-17aa-43e8-a0e6-fb22984c0bdc/26420f15-2143-443f-bca9-45c5b0720784' \ --header 'Authorization: 88ffe8398f972837ccc6e0a6cd31c5c92689040c' \ --header 'Content-Type: application/json' \ --data '{"event": "payment.success", "amount": 99.99, "customer_id": "cust_123"}'Your Project receives:
{ "event_type": "payment.success", "amount": 99.99, "customer_id": "cust_123", "received_at": "2025-10-01T10:30:00Z"}Cron Triggers (Schedule)
Execute at specific times or intervals using native cron scheduling.
Use cases:
- Daily reports and summaries
- Periodic data sync and ETL jobs
- Cleanup and maintenance tasks
- Monitoring and health checks
- Scheduled notifications
Key Features:
- Native cron support — Full cron expression syntax
- Timezone-aware — Schedule in your local timezone
- Reliable execution — Built-in monitoring and logging
- Payload mapping — Pass context data to scheduled runs
Setup:
- Go to Project → Triggers
- Click Add Trigger → Cron
- Configure:
- Cron expression:
0 6 * * *(daily at 6 AM) - Timezone: Select your timezone
- Payload: Define static or dynamic input data
- Cron expression:
- Save — Trigger is active immediately
Schedule types:
Cron expression format:
* * * * *│ │ │ │ ││ │ │ │ └─── Day of week (0-7, 0=Sunday)│ │ │ └───── Month (1-12)│ │ └─────── Day of month (1-31)│ └───────── Hour (0-23)└─────────── Minute (0-59)Common patterns:
0 * * * *— Every hour*/15 * * * *— Every 15 minutes0 9 * * 1-5— Weekdays at 9 AM0 0 1 * *— First of each month0 6,18 * * *— Twice daily at 6 AM and 6 PM0 0 * * 0— Weekly on Sunday at midnight
Cron Logging & Monitoring:
All cron executions are logged with:
- Scheduled time vs actual execution time
- Execution duration and status
- Payload data sent to the flow
- Any errors or warnings
View cron execution history in the Executions Dashboard.
Manual Triggers
Execute via Execution button.
Use cases:
- On-demand processing
- Admin actions
- Testing
- User-initiated workflows
Viewing Triggers
- Go to Project → Executions
- See list of all triggers:
- Type (webhook, schedule)
Editing Triggers
- Select trigger from list
- Click Edit
- Modify configuration
- Save → Changes take effect immediately
Note: Schedule changes apply to future executions, not currently running ones.
Deleting Triggers
Permanently remove a trigger:
- Select trigger
- Click Delete
- Confirm
- Trigger is removed
Warning: Cannot be undone. Webhook URLs will stop working.
Trigger configuration
Payload
Define what data the triggered execution receives.
Static payload:
{ "source": "scheduled_job", "timestamp": "{{now}}"}Dynamic payload from webhook:
{ "event_type": "{{webhook.event}}", "data": "{{webhook.body}}", "headers": "{{webhook.headers}}"}Using variables:
{ "api_key": "{{global.API_KEY}}", "environment": "{{global.ENV}}"}Timeout
Set maximum execution time:
- Default: 60 seconds
- Max: 15 minutes (Pro), 60 minutes (Enterprise)
If timeout reached:
- Execution is canceled
- Error logged
- Retry policy applies (if configured)
Webhook authentication
Secure your webhook endpoints.
API Key
Require API key in header:
This is an API-call that would trigger a certain flow with the {"data": "value"} payload:
curl -X POST 'https://app.triform.ai/api/in/31460071-17aa-43e8-a0e6-fb22984c0bdc/26420f15-2143-443f-bca9-45c5b0720784' \ --header 'Authorization: 88ffe8398f972837ccc6e0a6cd31c5c92689040c' \ --header 'Content-Type: application/json' \ --data '{"data": "value"}'Configuration:
- Enable API key authentication
- Provide key to webhook sender
- Triform validates before execution
Common patterns
Pattern 1: Webhook → Process → Notify
Webhook receives event → Validate and transform → Process data → Send notificationExample: Payment received → Update database → Email customer
Pattern 2: Schedule → Fetch → Process → Store
Daily at 6 AM → Fetch data from APIs → Process and analyze → Store resultsExample: Daily report generation
Pattern 3: Event chain
Project A completes → Triggers Project B → Triggers Project CExample: Onboarding flow: Create account → Send welcome → Provision services
Pattern 4: Error handling
Project fails → Event trigger fires → Error logger Project executes → Alert sent to teamExample: Automated incident response
Troubleshooting
Problem: Webhook not triggeringSolution: Check URL is correct, authentication is valid, check logs for rejected requests
Problem: Schedule not runningSolution: Verify cron expression, check timezone, ensure trigger is not paused
Problem: Trigger fires but execution failsSolution: Check payload format, verify required fields, review execution logs
Next steps
Continue exploring the documentation to learn about Executions and webhook configuration.