Workflow Triggers
Triggers are the events that start your workflows. Choose the right trigger to ensure your automations fire at exactly the right moment in your user’s journey.How to Choose the Right Trigger
| Goal | Best Trigger | Why |
|---|---|---|
| Welcome new users | Contact.Identified | Fires when contact is first created |
| Reward completions | Card.Completed or Gameplay.Ended | Fires when user finishes experience |
| Qualify leads | Gameplay.DataCapturedQualified | Only fires for qualified entries |
| Celebrate winners | Prize.Awarded | Fires immediately when prize is won |
| Manage lists | Contact.ListAdded | Fires when contact joins specific list |
| Receive external data | Webhook.Received | Fires when an external system sends data to your webhook URL |
Contact Triggers
Events related to contact creation, updates, and list management.| Trigger | When It Fires | Data Available | Perfect For |
|---|---|---|---|
| Contact.Identified | New contact is created or identified | Contact profile, source | Welcome sequences, onboarding |
| Contact.PropertyUpdated | Any contact field is modified | Old/new values, updated fields | Re-segmentation, personalization |
| Contact.Verified.Sso | Contact verifies via SSO login | Verification details, provider | Account activation, access grants |
| Contact.ListAdded | Contact joins a specific list | List name, contact details | List-specific communications |
Example: Welcome New Users
Gameplay Triggers
Events that fire during user interactions with your experiences.| Trigger | When It Fires | Data Available | Perfect For |
|---|---|---|---|
| Gameplay.Action | Any action taken in experience | Action type, timestamp, context | Engagement scoring, behavior tracking |
| Gameplay.Ended | User completes or exits experience | Completion status, duration, score | Completion rewards, follow-ups |
| Gameplay.DataCaptured | Form submitted (all entries) | Form fields, qualification status | Lead generation, data collection |
| Gameplay.DataCapturedQualified | Form submitted (qualified only) | Validated form data | Sales notifications, CRM sync |
| Gameplay.ReceiptValidationSuccess | Receipt upload approved | Receipt details, validation score | Purchase rewards, loyalty points |
| Gameplay.ReceiptValidationRejected | Receipt upload rejected | Rejection reason, uploaded file | Fraud prevention, user guidance |
| Gameplay.TreasureHuntCheckpointCompleted | Checkpoint reached in treasure hunt | Checkpoint details, progress | Progressive rewards, engagement |
| Gameplay.UploadApproved | User-generated content approved | Upload details, approval notes | UGC workflows, social sharing |
| Gameplay.UploadRejected | User-generated content rejected | Rejection reason, moderation notes | Content guidelines, re-submission |
| Gameplay.LiveSurveyQuestionAsked | Question submitted in live Q&A | Question text, user details | Real-time moderation, engagement |
| Gameplay.LiveSurveyQuestionApproved | Q&A question approved for display | Approved question, moderator | Live event management, curation |
| Gameplay.LiveSurveyQuestionRejected | Q&A question rejected | Rejection reason, question text | Content moderation, user feedback |
Example: Lead Qualification Flow
Prize Triggers
Events related to prize awards and winner management.| Trigger | When It Fires | Data Available | Perfect For |
|---|---|---|---|
| Prize.Awarded | User wins a prize | Prize details, winner info | Winner notifications, fulfillment |
| Prize.ExtraDataCaptured | Additional winner data collected | Extra form fields, prize context | Prize claim verification, shipping |
Example: Winner Notification System
Card Triggers
Events related to card interactions and engagement.| Trigger | When It Fires | Data Available | Perfect For |
|---|---|---|---|
| Card.CoverClicked | User clicks on card cover/preview | Card details, click context | Engagement tracking, interest scoring |
Example: Interest Tracking
Loyalty Triggers
Events related to loyalty program activities.| Trigger | When It Fires | Data Available | Perfect For |
|---|---|---|---|
| Loyalty.PointsAwarded | Points credited to account | Points amount, earning reason | Award confirmations, tier checks |
| Loyalty.PointsRedeemed | Points spent on redemption | Points spent, redemption details | Redemption confirmations, inventory |
| Loyalty.TierAdded | User promoted to new tier | New tier, previous tier | Tier upgrade celebrations, benefits |
| Loyalty.TierRemoved | User demoted from tier | Removed tier, current tier | Re-engagement campaigns, retention |
Example: Tier Upgrade Celebration
Webhook Triggers
Events triggered by external systems sending data to your workflow’s webhook URL.| Trigger | When It Fires | Data Available | Perfect For |
|---|---|---|---|
| Webhook.Received | External HTTP request hits your webhook URL | Webhook payload fields (defined by your schema) | Third-party integrations, external system events, custom automations |
How webhook triggers work
When you selectWebhook.Received as your trigger, Komo generates a unique webhook URL for your workflow. External systems can send HTTP POST requests to this URL to trigger the workflow.
You can define a JSON schema for your expected webhook payload. This schema tells the workflow editor what fields to expect, so you can reference them in your workflow steps using Liquid template variables.
Using webhook data in workflow steps
Once you define a schema for your webhook payload, the fields become available as Liquid template variables under thewebhook namespace. For example, if your webhook payload includes user_id and amount fields, you can reference them as:
{{ webhook.user_id }}{{ webhook.amount }}
address.city field can be referenced as {{ webhook.address.city }}.
Example: External purchase sync
Setting up a webhook trigger
- Create a new workflow and select Webhook.Received as the trigger event
- A unique webhook slug is generated for your workflow — this forms your webhook URL
- Optionally define a request schema using JSON Schema format to describe the expected payload structure
- Use the schema fields as Liquid variables in your workflow actions (e.g., email templates, contact updates, filters)
Advanced Trigger Strategies
1. Trigger Stacking
Use multiple related triggers for comprehensive coverage:2. Qualification Layering
Combine broad triggers with specific filters:3. Time-Based Follow-ups
Chain triggers for timed sequences:Troubleshooting Triggers
Common Issues
| Problem | Likely Cause | Solution |
|---|---|---|
| Trigger not firing | Incorrect scope configuration | Verify workflow scope matches trigger source |
| Too many executions | Overly broad trigger conditions | Add specific filters to narrow scope |
| Missing data | Trigger fired before data available | Add delay or data validation checks |
| Duplicate workflows | Multiple workflows with same trigger | Use exclusion filters or combine workflows |
Testing Tips
- Start with broad triggers - Use
Gameplay.Actionto see all events - Add logging - Use webhook actions to log trigger data
- Test with real data - Use actual user interactions, not simulated events
- Monitor execution volume - Check Workflow Runs for unexpected patterns
Best Practices
✅ Do This
- Be specific - Use qualified triggers when possible (
DataCapturedQualifiedvsDataCaptured) - Add context filters - Narrow scope with contact properties or gameplay data
- Plan for scale - Consider execution volume for broad triggers
- Document trigger purpose - Name workflows clearly to indicate trigger intent
❌ Avoid This
- Don’t use overly broad triggers without filters (
Contact.PropertyUpdatedwithout field specification) - Don’t stack identical triggers - Combine similar workflows instead
- Don’t ignore data availability - Ensure required data exists when trigger fires
- Don’t skip testing - Always verify triggers fire as expected
What’s Next?
- Browse workflow actions → - Explore actions to pair with these triggers
- Back to workflows guide → - Return to main workflows documentation
