Workflow vocabulary¶
Look up the names and internal identifiers used by workflow triggers, conditions and actions.
Generated from the source code
This page is written by tools/docs/workflow-registry.py from the Workflow and HR modules, so it lists what the code declares. Enabled modules and custom fields can change the choices shown in your installation.
Open an option in the editor to see its required values and available operators. For instructions, start with the Workflow Builder; schedules and runs explains re-entry and webhooks. These tables describe the available definitions, not the rules running on your site.
Triggers¶
| Identifier | Editor label |
|---|---|
asset_low_stock |
An asset's stock falls to its reorder level |
asset_warranty |
An asset's warranty ends… |
client_anniversary |
A client's joining anniversary |
client_inactive |
A client has been quiet for… |
client_login |
A client signs in to the portal |
client_stage |
A client's stage changes to… |
contact_replied |
A client or lead replies by email (Email Intake) |
contact_unsubscribed |
A contact unsubscribes from marketing email |
date_field_due |
A custom date field comes up… |
deal_closing |
An open deal's expected close date is… |
deal_created |
A deal is created |
deal_idle |
An open deal has had no activity for… |
deal_stage |
A deal's stage changes to… |
estimate_created |
An estimate is created |
estimate_expiring |
A sent estimate expires… |
estimate_status |
An estimate's status changes to… |
followup_due |
A contact's follow-up date arrives |
hr_approval_escalated |
An approval is escalated (no answer in time)… |
hr_asset_requested |
Someone requests equipment |
hr_employee_created |
A new employee is added |
hr_employee_terminated |
An employee leaves (terminated) |
hr_leave_decided |
A time-off request is… |
hr_leave_requested |
Someone requests time off |
invoice_created |
An invoice is created |
invoice_due_soon |
An unpaid invoice is due… |
invoice_overdue |
An invoice is overdue by… |
invoice_status |
An invoice's status changes to… |
lead_converted |
A lead becomes a client |
lead_created |
A new lead comes in (source)… |
lead_stage |
A lead's stage changes to… |
manual |
Added by hand (Runs → Add records) |
note_added |
A note is added to a… |
payment_received |
A payment is recorded on an invoice… |
schedule |
On a schedule (no record)… |
segment_entered |
A client enters a segment… |
segment_left |
A client leaves a segment… |
task_created |
A task is created (type)… |
task_due_soon |
An open task is due… |
task_overdue |
An open task is overdue by… |
ticket_assigned |
A ticket is assigned (team)… |
ticket_created |
A ticket is created |
ticket_csat |
A client rates a ticket (satisfaction)… |
ticket_idle |
A ticket has had no activity for… |
ticket_note_added |
An internal note is added to a ticket |
ticket_reopened |
A resolved ticket is reopened |
ticket_replied |
A ticket gets a reply from… |
ticket_sla_breach |
A ticket's SLA is breached (priority)… |
ticket_sla_warning |
A ticket's SLA is due soon (priority)… |
ticket_status |
A ticket's status changes to… |
ticket_tag_added |
A tag is added to a ticket… |
ticket_tag_removed |
A tag is removed from a ticket… |
ticket_unassigned |
An open ticket has been unassigned for… |
ticket_waiting_client |
A ticket has waited on the client for… |
time_logged |
Time is logged… |
webhook_received |
An incoming webhook (Zapier, Make, a website form…) |
Condition fields¶
| Identifier | Editor label |
|---|---|
asset.category |
Asset category |
asset.days_warranty |
Days until the warranty ends |
asset.qty |
Quantity on hand |
assignee.department |
Assignee's department |
client.balance |
Balance owed (all invoices) |
client.city |
City |
client.company |
Company |
client.days_login |
Days since they last signed in to the portal |
client.lifetime_paid |
Lifetime paid |
client.open_deals |
Open deals |
client.open_tickets |
Open tickets |
client.plan |
Service plan |
client.segments |
Segments they're in |
client.stage |
Client stage |
client.state |
State / region |
client.tags |
Client tags |
client.unpaid_invoices |
Unpaid invoices |
contact.company |
Company |
contact.days_contacted |
Days since last contacted |
contact.days_created |
Days since they were added |
contact.days_followup |
Days until the next follow-up (negative = overdue) |
contact.email |
Email address |
contact.email_domain |
Email domain (e.g. gmail.com) |
contact.may_market |
Okay to send marketing email |
contact.name |
Name |
contact.owner |
Owner (assigned staff) |
contact.phone |
Phone |
contact.source |
Source |
contact.stage |
Stage |
contact.tags |
Tags |
contact.type |
Is a client or a lead |
contact.unsubscribed |
Has unsubscribed from marketing email |
deal.billing |
Billing |
deal.days_close |
Days until the expected close (negative = missed) |
deal.days_updated |
Days since it was last updated |
deal.owner |
Owner |
deal.priority |
Priority |
deal.probability |
Probability (%) |
deal.source |
Source |
deal.stage |
Stage |
deal.type |
Type |
deal.value |
Value |
employee.department |
Employee's department |
employee.location |
Employee's location |
employee.team |
Employee's team |
employee.type |
Employment type |
estimate.days_valid |
Days until it expires (negative = expired) |
estimate.status |
Estimate status |
estimate.total |
Estimate total |
event.value |
The trigger's value (tag, status, form…) |
event.webhook |
Incoming webhook data |
invoice.days_due |
Days until it's due (negative = overdue) |
invoice.days_late |
Days overdue (0 = not overdue) |
invoice.part_paid |
Partly paid |
invoice.title |
Invoice title |
invoice.total |
Invoice total |
task.assignee |
Task assigned to |
task.days_late |
Days overdue (negative = days left) |
task.done |
Task is done |
task.priority |
Task priority |
task.title |
Task title |
task.type |
Task type |
ticket.age_hours |
Hours since it was opened |
ticket.assignee |
Assigned to |
ticket.category |
Category |
ticket.csat |
Satisfaction rating |
ticket.hours_quiet |
Hours since its last activity |
ticket.impact |
Impact |
ticket.last_reply_by |
Last reply came from |
ticket.priority |
Priority |
ticket.replies |
Number of replies |
ticket.sla_state |
SLA state |
ticket.status |
Status |
ticket.tags |
Tags |
ticket.team |
Team |
ticket.text |
Subject or description |
ticket.urgency |
Urgency |
time.business_hours |
It's within business hours |
time.day_of_month |
Day of the month (1–31) |
time.hour |
Hour of the day (0–23, site time) |
time.month |
Month |
time.weekday |
Day of the week |
time.weekend |
It's the weekend |
Actions¶
| Identifier | Editor label |
|---|---|
add_note |
Add an internal note |
add_record_note |
Add a note to the record |
add_tag |
Add tags |
add_watcher |
Add watchers to the ticket |
assign |
Assign the ticket |
assign_by_skills |
Assign by skills |
assign_deal |
Assign the deal |
assign_owner |
Assign an owner to the client / lead |
close_tasks |
Close the record's open tasks |
contact_add_tags |
Add tags to the client / lead |
contact_remove_tags |
Remove tags from the client / lead |
create_deal |
Create a deal |
create_invoice |
Create a draft invoice (never sent) |
create_lead |
Create a lead (matched by email) |
create_task |
Create a task |
create_ticket |
Open a ticket for the client |
email |
Send an email |
escalate_to_manager |
Escalate to the assignee's manager |
exit_workflows |
Take the record out of other workflows |
invoice_from_estimate |
Turn the estimate into a draft invoice |
invoice_reminder |
Email the client an invoice reminder |
mark_contacted |
Mark as contacted today |
remove_tag |
Remove tags |
set_client_stage |
Set the client's stage |
set_deal_stage |
Move the deal to a stage |
set_followup |
Set the next follow-up date |
set_lead_stage |
Set the lead's stage |
set_priority |
Set priority |
set_status |
Set status |
set_team |
Set team |
start_workflow |
Start another workflow for this record |
ticket_reply |
Reply to the client on the ticket |
unsubscribe |
Stop marketing email to the contact |
wait |
Wait, then continue |
webhook |
Call a webhook |
Before using an action¶
An invoice-creation action creates a draft for review. An opt-out action can turn the marketing opt-out on, but cannot clear it. Creating or matching a lead does not convert that person into a client account. If an action creates a new record, check which record the following step will use.