Triggers
Triggers listen for specific events and provide context to the rest of the workflow.Ticket triggers
Ticket Created
Ticket Created
- Auto-assign tickets based on form or channel
- Send welcome messages to requesters
- Notify team members of new tickets
- Route tickets to specialized teams
Form Submitted
Form Submitted
- Fires when a ticket is created with form data
- Fires when form field values are updated on existing tickets
- Route tickets based on submitted form type
- Trigger approval workflows for access request forms
- Send notifications when specific forms are submitted
Category Assigned
Category Assigned
- Fires when a ticket is created with a category
- Fires when a category is changed on an existing ticket
- Route tickets based on assigned category
- Auto-assign tickets from specific categories to specialized teams
- Escalate tickets when high-priority categories are assigned
Ticket Archived
Ticket Archived
- Clean up related Slack channels
- Send final status notifications
- Update external tracking systems
Ticket Assigned
Ticket Assigned
- Notify assignees of new assignments
- Update workload tracking systems
- Send assignment confirmation messages
Ticket Status Changed
Ticket Status Changed
- Send notifications on status changes
- Update external systems when tickets are resolved
- Trigger follow-up workflows based on status
Ticket Approval
Ticket Approval
- Continue workflows after approval
- Notify stakeholders of decisions
- Provision access after approval
- Handle declined requests
SLA Status
SLA Status
- SLA Attached - Fires when an SLA is first applied to a ticket. Use this to acknowledge the commitment or notify stakeholders.
- SLA Alert - Fires when an SLA alert threshold is crossed, before a breach occurs. Use this for early warnings and escalations.
- SLA Breached - Fires when an SLA target is missed. Use this for escalation, reassignment, or stakeholder notifications.
- SLA Met - Fires when all SLA targets on a ticket are satisfied. Use this for confirmation messaging or reporting.
ticketId- The ID of the ticket whose SLA status changed
- Escalate tickets and notify managers when an SLA is breached
- Send early-warning pings to assignees on SLA alerts
- Confirm to requesters when SLA commitments are met
- Apply tags or update priority when an SLA is attached
Reminder Expired
Reminder Expired
- Reminder Type (optional): Limit the trigger to a specific reminder type. Leave empty to fire on any reminder. Supports and , which are scheduled automatically when an approver or assignee has not acted within the configured window.
ticketId- The ID of the ticket the reminder was attached toreminderType- The type of reminder that expired (ApprovalorAssignment)
- Nudge approvers in Slack or email when an approval reminder fires
- Reassign or escalate a ticket when an assignment reminder fires
- Post a private note on the ticket summarizing pending approvers
Entitlement Status Changed
Entitlement Status Changed
- Statuses (required): Select one or more entitlement statuses to trigger on. A single rule can fan out across multiple outcomes, so you do not need to duplicate the trigger for each status.
- Access Provisioned - The user was successfully granted access.
- Access Deprovisioned - The user’s access was successfully removed.
- Provision Failed - Granting access failed.
- Deprovision Failed - Removing access failed.
- Skipped Provisioning - Provisioning was skipped (for example, the user already had access).
- Skipped Revocation - Revocation was skipped (for example, another active grant still requires the access).
ticketId- The ID of the access request ticket that owns the entitlemententitlementId- The ID of the entitlement whose status changed. Expand it to readapplicationId,accessLevelId,userGroupId,userId, andentitlementStatus.
- Notify the requester when their access is provisioned
- Alert the IT team when provisioning or deprovisioning fails
- Fan out one workflow across Access Provisioned, Deprovision Failed, and Skipped Provisioning together
Task triggers
Task Completed
Task Completed
ticketId- The ID of the ticket containing the tasktaskItemId- The ID of the completed task itemcurrentTask- Information about the task that was just completednextTask- Information about the next task in the sequence (if any)currentTaskAssigneeIds- User IDs of assignees on the completed tasknextTaskAssigneeIds- User IDs of assignees on the next taskhasMoreTasks- Boolean indicating if there are more tasks remaining
- Notify next task assignees when their task becomes active
- Send completion notifications to stakeholders
- Create task handoffs between team members
- Escalate if tasks are completed outside SLA windows
Task Template Applied
Task Template Applied
- Notify assignees when a task template is applied
- Trigger onboarding or checklist workflows
- Set ticket status or priority based on the applied template
Message triggers
Message Sent
Message Sent
- Message Authors (optional): Limit the trigger to messages from specific users or groups.
- Visibility (optional): Restrict the trigger to either
PublicorPrivatemessages. Leave unset to fire on both.- Public: Messages visible to requesters and external channels.
- Private: Internal-only private notes that stay hidden from requesters.
- Filters (optional): Add filter groups to match on additional message or ticket attributes.
- Analyze message content or sentiment
- Notify team members of updates
- Trigger automated responses
- Route only public replies to customer-facing workflows, or only private notes to internal review flows
Scheduled triggers
Cron
Cron
- Schedule - A standard 5-field cron expression (
minute hour day-of-month month day-of-week). Use the inline picker to build common schedules, or type an expression directly. Examples:0 * * * *- Every hour, on the hour.0 9 * * 1-5- 9:00 AM, Monday through Friday.0 0 1 * *- Midnight on the first day of each month.*/15 * * * *- Every 15 minutes.
- Timezone - The timezone the schedule runs in. Defaults to UTC. Choose from regions including US, Europe, Asia Pacific, and other Americas.
- Schedule recurring reports or cleanup tasks
- Automate periodic ticket reviews
- Run time-based processes
Webhook triggers
Webhook (AI Prompt Trigger)
Webhook (AI Prompt Trigger)
- Add the Webhook trigger to a workflow.
- Copy the generated Direct URL and configure it as the destination in the emitting system.
- Write a Prompt that describes how to transform the incoming payload into the fields you need downstream.
- When the external system posts to the URL, Ravenna runs the prompt against the request body and starts the workflow with the parsed output.
- Direct URL - Read-only URL to register with the upstream webhook emitter. Click to copy.
- Prompt - Instructions for transforming the incoming webhook body into structured data for downstream actions.
- Store the URL in your emitter’s secret manager rather than pasting it into shared documents or public code.
- If the URL is ever exposed, remove the Webhook trigger and add a new one to rotate to a fresh URL.
- If the upstream system supports it, restrict egress by IP allowlist on the emitter side.
-
Webhook response HTTP status code - Status code Ravenna returns to the emitter once the run is accepted. Choose the value the emitter expects:
200 OK(default) - Generic success.201 Created- Emitter expects a “created” acknowledgment.202 Accepted- Emitter expects an asynchronous acceptance signal.204 No Content- Emitter expects an empty body response.
- Receive events from systems without a native Ravenna integration
- Bridge custom internal tools into workflow automation
- Trigger workflows from monitoring or alerting platforms
Third-party integration triggers
Many integrations provide workflow triggers for events in their systems.Actions
Actions perform work in your workflows using information from triggers and previous actions.Ticket actions
Create Ticket
Create Ticket
- Create follow-up tickets for multi-step processes
- Generate tickets from Slack messages or external events
- Split complex requests into multiple tickets
- Hand off work to another team’s workspace and let their automations pick it up
Update Ticket
Update Ticket
- Escalate tickets by changing priority
- Add processing or status tags
- Update custom fields based on workflow logic
- Set a parent ticket to organize tickets into a hierarchy
- Reassign the requester when a ticket is submitted on behalf of someone else
Set Status
Set Status
- Auto-resolve tickets meeting specific criteria
- Move tickets through workflow stages
- Add resolution notes automatically
Set Priority
Set Priority
- Escalate urgent issues automatically
- Adjust priorities based on SLA requirements
- Reprioritize based on ticket content analysis
Add Assignee
Add Assignee
- All: Assigns every selected user (or every member of the selected group) to the ticket.
- Round Robin: Assigns one user from the selected list or group using rotation to balance workload.
- Distribute tickets across a group with Round Robin for load balancing
- Assign based on expertise or tags
- Route tickets to specific groups or teams
- Stage multiple Round Robin assignments (triage, then review) within a single workflow without interfering rotations
Add Followers
Add Followers
- Add managers to high-priority tickets
- Include cross-functional stakeholders
- Notify relevant parties automatically
Add Approvers
Add Approvers
- All: Assigns everyone in the selected list as approvers. Any one of them can approve.
- Round Robin: Assigns one approver from the list using rotation to balance workload.
- Auto: System bot auto-approves immediately (use for conditional approval branches).
- Route approvals to managers with load balancing via Round Robin
- Add all qualified approvers and let the first available person approve
- Assign approvers by department using Round Robin for fair distribution
Wait for Approval
Wait for Approval
- Duration: Maximum time to wait for a response before falling through to the On Timeout branch. Default is 3 days. Accepts values like
1h,2d,1w, orForeverto wait indefinitely.
- Auto: Workflow continues immediately down On Approved (auto-approved by system bot)
- All: Waits for any one of the assigned approvers to respond
- Round Robin: Waits for the single assigned approver to respond
- Honors the assignment strategy set by preceding “Add Approvers” actions
isApproved- Boolean indicating whether the ticket was approvedisTimedOut- Boolean indicating whether the wait expired before a response was received
- On Approved runs when
isApprovedistrue. - On Declined runs when
isApprovedisfalseandisTimedOutisfalse. - On Timeout runs when
isTimedOutistrue. Use this branch to send escalation reminders, reassign approvers, or close the ticket as expired.
- Gate access provisioning until approved
- Escalate to a backup approver when the primary does not respond in time
- Auto-close stale approval requests after a deadline passes
Wait for Message
Wait for Message
- Message Authors: Select users or groups whose messages resume the workflow
- Timeout Duration: Maximum wait time (default: 3 days, supports “1h”, “2d”, “1w”)
- Message Sources (optional): Filter by Web, Email, or Slack. If not specified, all sources are accepted.
isSuccess- Boolean indicating if a matching message was received before timeoutticketMessageId- The ID of the message that resumed the workflow (if successful)
- Wait for customer responses before proceeding
- Pause until specific team members provide input
- Hold workflow until user confirms information
Move Ticket
Move Ticket
- Transfer tickets between teams
- Escalate to different departments
- Move tickets across workspaces
Send CSAT
Send CSAT
- Survey after ticket resolution
- Measure service quality
- Gather user feedback
Monitor Ticket
Monitor Ticket
- Wait for status changes before proceeding
- Monitor for specific ticket updates
- Trigger actions when conditions are met
Wait for Inactivity
Wait for Inactivity
- Auto-resolve tickets after inactivity period
- Send reminder messages before auto-closing
- Escalate tickets with no response
Send Message
Send Message
- Send automated updates to requesters
- Request additional information
- Provide automated status notifications
Check for New Messages
Check for New Messages
- Detect user responses in monitoring workflows
- Track conversation activity
- Trigger actions when new messages appear
Link Ticket
Link Ticket
ticketId- The Ravenna ticket to attach the link toname- Descriptive name for the link (e.g., “Related Jira Issue”)url- The external URL to link to
isSuccess- Boolean indicating if the link was created successfullyticketLinkId- The ID of the created ticket linkticketId- The ID of the linked ticketurl- The URL that was linked
- Link to external tickets in other systems (Jira, Linear, GitHub Issues)
- Reference related Slack channels created for incidents
- Create audit trails for external resource creation
Publish Ticket
Publish Ticket
- Create and configure a ticket across multiple steps before making it visible
- Control when notifications are sent for new tickets
- Finalize ticket properties before publishing
Apply Task Template
Apply Task Template
- Attach onboarding checklists to new hire tickets
- Apply standard operating procedures to incident tickets
- Add review checklists based on ticket type or category
Search Tickets
Search Tickets
- Find related or duplicate tickets
- Look up tickets by requester, status, or custom fields
- Check for existing tickets before creating new ones
Search Users
Search Users
- User Filter: One or more filter groups that define which users to return. Filter on user attributes such as name, email, or group membership. Ravenna combines groups with OR and combines conditions inside a group with AND.
- Limit: Maximum number of users to return (default 50, maximum 50).
userIds- Array of user IDs matching the filter
- Look up the members of a group or team to notify or assign
- Find users by attribute for routing decisions
- Build a dynamic recipient list for downstream Add Assignee, Add Followers, or Send Email steps
- Combine with Loop to run actions per matching user
Control flow actions
Wait and other duration fields:Wait
Wait
- Add delays between actions
- Wait for external processes to complete
- Create timed follow-ups
Wait Until
Wait Until
- The target date the wait calculates from.
- Accepts a fixed date or a dynamic value from the trigger or a previous step (for example, a date field from a form submission or an action output).
- Use a dynamic value when the date depends on ticket data, such as an access start date or a contract end date provided at runtime.
- Set an optional offset to run the workflow relative to the From date.
- Positive offsets (e.g.,
5d) wait until after the From date. - Negative offsets (e.g.,
-5d) wait until before the From date. - Example: an offset of
-5don an onboarding date of March 20 resumes the workflow on March 15.
- Send reminders before a deadline or renewal date
- Trigger onboarding tasks relative to a start date
- Schedule follow-ups after a target date
- Coordinate multi-step processes around key milestones
Conditional
Conditional
- Branch workflow logic based on ticket properties
- Filter actions by conditions
- Implement decision trees
If / Else
If / Else
- Execute different actions based on ticket properties
- Handle multiple scenarios with alternative paths
- Create conditional workflow branches
Goto
Goto
- Create workflow loops
- Skip steps based on conditions
- Implement retry patterns
Loop
Loop
- Process multiple items from a search result
- Send notifications to a list of users
- Perform bulk operations across a set of tickets
AI actions
Summarize Ticket
Summarize Ticket
- Generate ticket summaries for handoffs
- Create executive briefings
- Summarize resolution steps
AI Decision Maker
AI Decision Maker
- Route tickets based on content analysis
- Evaluate sentiment for escalation
- Determine appropriate next actions
Custom Prompt
Custom Prompt
- Draft response messages based on ticket content
- Extract structured data from unstructured text
- Analyze sentiment or urgency from messages
- Generate dynamic next steps from conversation history
Messaging actions
Send Email
Send Email
- Existing followers, approvers, the requester, assignee, and author are skipped.
- Email addresses that don’t match a Ravenna user are ignored.
- Followers are not added when the ticket is marked as private.
- If adding followers fails, the email is still sent and the error is logged.
- Notify external stakeholders who are not in Slack
- Send formal communications like approval confirmations or access grants
- Deliver summary reports or status updates via email
- Loop additional teammates into a ticket by emailing them from a workflow
Tools actions
HTTP Request
HTTP Request
- URL - The API endpoint to call
- Method - HTTP method: GET, POST, PUT, DELETE, or PATCH
- Headers - Custom key-value headers to include in the request
- Query parameters - Key-value pairs appended to the URL
- JSON body - Request body content (for POST, PUT, PATCH, DELETE)
- Timeout - Maximum wait time for a response (default: 10 seconds, max: 45 seconds)
- None - No authentication
- API Key - Sends an API key in a configurable header (default:
X-API-Key). Select a vault credential to provide the key value. - Bearer Token - Sends a token in the
Authorization: Bearerheader. Select a vault credential to provide the token value. - Basic Auth - Sends a username and password as a Base64-encoded
Authorization: Basicheader. The password field supports vault credentials.
isSuccess- Boolean indicating if the response status code is 2xxResponse.Body- The response body from the APIResponse.StatusCode- The HTTP status code
- Send data to external systems
- Fetch information from third-party APIs
- Trigger actions in other platforms
- Integrate with services that lack a native Ravenna integration
Third-party integration actions
Many integrations provide workflow actions for automating tasks in their systems.Tips
- Use specific trigger filters. Narrow triggers with channel, priority, status, or user criteria to avoid unnecessary executions.
- Make actions idempotent. Configure actions so they can be safely repeated without causing problems. This improves reliability when workflows retry after failures.
- Name steps clearly. Descriptive names make workflows easier to understand and debug.
- Test with realistic data. Pay attention to edge cases and error conditions.
- Document non-obvious logic. Add descriptions explaining business rules so team members understand why workflows behave in certain ways.