Automation Triggers and Filters
The shared trigger and filter reference for campaign and task automations.
Campaign and task automations share this trigger and filter model. Campaign actions enroll customers or remove them from campaigns. Task actions create one or more task templates. For the mental model see Automations Explained; for worked examples see the recipes.
Triggers
| Trigger | Group | Configuration | Exit-capable |
|---|---|---|---|
| Lead Created | Data | none (qualify with filters; the only trigger where source filters apply) | no |
| Customer Created | Data | none | no |
| Policy Created | Data | none | no |
| Policy Status Changed | Data | one or more From and/or To statuses; an empty side means any status | yes |
| Date-Based | Date | policy date field, offset 0-365 days, Before/After | no |
| Birthday | Date | offset 0-365 days, Before/After, optional At age (0-120) | no |
| Day of Year | Date | month and day (overflow dates clamp to the month's last day) | no |
| Campaign Completed | Campaign | source campaign (for campaign enrollment, it must differ from the target) | no |
| Campaign Failed | Campaign | source campaign (for campaign enrollment, it must differ from the target) | no |
| Time In Campaign | Campaign | days 1-3650; campaign enrollment requires a source campaign, task creation may use all active memberships, and exits apply to the exit scope | yes |
| Task Completed | Task | task tag, Done or Cancelled status, and optional linked-policy statuses | no |
Date-Based policy date fields: Application Approval Date, Effective Date, Termination Date, Renewal Date, Enrollment Date, Paid Through Date, Grace Period Start Date.
customer_field_changed remains supported for existing automations but is
currently hidden in the builder. Its changed to / changed from operators appear
only with it. The campaign-only policy_changed enum value is deprecated and
rejected on new automations.
Actions
- Enroll into a campaign: requires a target campaign (receptionist and ended campaigns are excluded). Campaign Completed/Failed triggers are filed as intra automations; everything else as entry.
- Remove from campaign(s): exit scope is one of Any active campaign, Campaigns in suite(s) (Sales, Revenue, Retention), or Specific campaigns, plus a final status of Completed or Failed. This action is available for Policy Status Changed, Customer Field Changed, and Time In Campaign.
- Create task(s): each task automation contains one or more templates with a title, description, tags, priority, and due offset. Created tasks are assigned to the member assigned to the customer. If the customer has no assigned member, the automation creates no tasks.
For task due offsets, 0 stores no due date. It does not mean due today. A
positive calendar-day offset adds that many 24-hour periods to the trigger
time. A positive business-day offset starts at UTC midnight and advances over
weekdays only, skipping Saturday and Sunday; holidays are not excluded.
Filters
Filters combine in nested Match ALL / Match ANY groups. Available fields and their operators:
| Field | Operators |
|---|---|
| Policy status | is any of, is, is not (+ changed to / changed from with the hidden field-change trigger) |
| Policy carrier | is, is not, is any of, is empty, is not empty |
| Policy type | is any of, is |
| Policy subtype | is any of, is |
| Policy subsidy amount | is, is not, greater than, at least, less than, at most, between, is empty, is not empty |
| Policy date | is, before, after, at least, at most, between, within the last N days, older than N days (pick the date field) |
| State | is any of, is |
| Preferred language | is, is any of |
| Lead source | is any of (Lead Created trigger only) |
| Custom field | is, is not, is any of, greater than, at least, less than, at most, between, is empty, is not empty (value input adapts to the field's type) |
| Age | turning N within N days (fixed form) |
| Campaign membership | active in, not active in |
Policy date filter fields include the Date-Based list above plus Cancelled Date. Relative date windows use UTC day boundaries. "Within the last N days" includes both the threshold date and today; "older than N days" is strictly before the threshold. Future dates match neither operator.
Policy focus
For Policy Created, Policy Status Changed, and Date-Based triggers, policy filters inspect only the policy that caused the event or date match. Task Completed does the same when the completed task is linked to a policy. This prevents an unrelated policy on the same customer from satisfying the filter.
For triggers without a focal policy, policy filters inspect all non-deleted policies for the customer and match if any one policy satisfies the condition. A Task Completed trigger with no linked policy follows this general shared-filter behavior. Its optional linked-policy status setting is stricter: when statuses are selected, a task without a linked policy does not match.
Scheduled trigger timing
Date-Based, Birthday, Day of Year, and Time In Campaign are evaluated by one
nightly worker at 0 8 * * * UTC. Date arithmetic and the logical fire date use
UTC. This is midnight PST in winter and 1 AM PDT in summer; the daylight-saving
drift is intentional.
Date-Based, Birthday, and Day of Year require an exact UTC date match. Missed dates are not caught up. Creating or enabling an automation and importing a customer can trigger a same-day evaluation, but a date that has already passed remains missed. February 29 birthdays and overflowing Day of Year dates clamp to the final day of February or the configured month.
Time In Campaign uses an at-or-before threshold based on the campaign membership's assignment time. It can therefore match on a later run after the threshold has passed. Deduplication prevents the action from repeating after it has fired.