> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trig.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Jobs

> Orchestrate interventions to drive customer success

Jobs are the intervention layer of Trig. They orchestrate outreach to customers who meet specific criteria, with the goal of driving them toward a desired behaviour.

## What are jobs?

Unlike stages (which observe) and behaviours (which track milestones), jobs actively intervene—sending messages, notifying teams, and measuring whether the intervention worked.

<Note>
  **Key principle:** Jobs are goal-oriented and time-bounded. You define who to target, what you want them to do, how you'll encourage them, and how long you'll wait.
</Note>

Think of jobs as targeted nudges. You've identified customers who should do something but haven't. The job reaches out, encourages the action, and measures results.

## Why jobs matter

### Closing the gap between insight and action

Stages and behaviours tell you what's happening. Jobs let you do something about it.

The insight that "47 customers haven't completed onboarding objective 3" becomes actionable when you can immediately target those 47 with a relevant message.

### Timely, contextual intervention

The closer an intervention arrives to the moment of need, the more effective it is:

| Timing          | Effectiveness                            |
| --------------- | ---------------------------------------- |
| Within minutes  | Exceptional—customer is still in context |
| Within hours    | Very good—customer remembers the session |
| Within 24 hours | Good—still relatively fresh              |
| 48+ hours       | Declining—customer has moved on          |

### Measurable impact

Every job tracks:

* How many entered
* How many completed (achieved the goal)
* How many exited (didn't achieve the goal)
* How long it took
* What actions were taken

This creates clear attribution for intervention effectiveness.

## How jobs work

### The job lifecycle

```
Audience Match → Entry → Intervention → Outcome
                          ↓
                    ┌─────┴─────┐
                    ↓           ↓
               Completion     Exit
              (goal achieved) (goal not achieved)
```

1. **Audience Match:** Customer meets targeting criteria
2. **Entry:** Customer enters, entry actions fire
3. **Intervention:** Messages sent, follow-ups occur
4. **Outcome:** Goal achieved (completion) or time expires (exit)

### Completion vs exit

**Completion:** The customer achieved the goal. This is the positive outcome.

**Exit:** The customer did not achieve the goal within the time allowed. This is the negative outcome (but valuable data).

Both create permanent metadata:

```
last_completed_[job]  — Timestamp if completed
last_exited_[job]     — Timestamp if exited without completing
last_entered_[job]    — When they entered
```

### Time-bounded by design

<Warning>
  Jobs should have an auto-exit duration. Without one, customers who never achieve the goal remain indefinitely—breaking your ability to analyse and iterate.
</Warning>

**Duration guidelines:**

* Simple actions (click a link): 3 to 7 days
* Moderate actions (complete setup step): 7 to 14 days
* Complex actions (invite team, integrate system): 14 to 30 days

## Configuring jobs

### Anatomy of a job

| Component              | Description                   | Example                              |
| ---------------------- | ----------------------------- | ------------------------------------ |
| **Goal**               | What you want customers to do | `invoices_created >= 1`              |
| **Audience**           | Who should receive this       | New users, signed up 1 to 7 days ago |
| **Duration**           | How long before auto-exit     | 14 days                              |
| **Entry Actions**      | What happens when they enter  | Send initial email                   |
| **Intervention**       | Follow-up messages/actions    | Follow-up email after 3 days         |
| **Completion Actions** | What happens on success       | Notify team, update CRM              |
| **Exit Actions**       | What happens on failure       | Flag for follow-up job               |

### Defining the goal

The goal is the completion criteria—what must be true for success.

**Attribute-based:**

```
invoices_created >= 1
team_members >= 2
integration_connected = true
```

**Event-based:**

```
first_project_created occurred
payment_submitted occurred
```

**Behaviour-based:**

```
last_completed_[behaviour] has any value
```

<Tip>
  Keep goals focused on a single, clear action. Multiple actions = separate jobs.
</Tip>

### Defining the audience

**Basic criteria:**

```
Audience:
- sign_up_date > 1 day ago
- sign_up_date < 7 days ago
- invoices_created = 0
```

**Using cohorts:**

```
Audience: Members of cohort "New Self-Serve Users"
```

**Using history:**

```
Audience:
- last_completed_Onboarding_Stage has any value
- last_completed_First_Invoice_Job has no value
```

**Important considerations:**

* **Relative vs absolute dates:** Relative dates mean audience constantly refreshes
* **Exclusions:** Use `last_entered_[job] has any value` to exclude customers who've already been through

## Job actions

See [Actions](/concepts/actions) for detailed action configuration.

### Entry actions

Fire when a customer enters:

* **Send email:** Plain text message to the customer
* **Notify team:** Slack message to a channel
* **Update attribute:** Set value on customer record
* **Fire webhook:** Call external endpoint

### Follow-up actions

After entry, schedule follow-up:

```
Wait 3 days → Send follow-up email
Wait 7 days → Send second follow-up
```

Most jobs use 1 to 2 follow-ups. More often indicates the job is too broad.

### Completion actions

When goal is achieved:

* Celebratory message
* Notify team
* Update CRM
* Route to next job

### Exit actions

When customer exits without completing:

* Notification to team
* Update attribute to mark failure
* Route to alternate job

## Email best practices

### Plain text over branded

<Warning>
  **Trig strongly recommends plain text emails.** They look personal, get 10x higher engagement, and feel human even when automated.
</Warning>

**Plain text advantages:**

* Looks like it came from a real person
* Higher open rates
* Higher response rates
* Avoids spam filters

### Contextual and specific

**Good:**

```
Hi Sarah,

I noticed you've logged into FreshBooks but haven't sent your
first invoice yet. Here are three steps to get started—takes
about 5 minutes:

1. Click Invoices in the left menu
2. Click "Create New Invoice"
3. Fill in your client details and hit Send

If you run into any issues, just reply to this email.

Thanks,
Lee
```

**Bad:**

```
Welcome to FreshBooks! We're so excited to have you on board.
FreshBooks is the #1 invoicing solution for small businesses...
```

The good example is contextual, specific, actionable, and personal.

### Short and actionable

* Lead with the action you want them to take
* Provide 1 to 3 clear steps
* Include relevant links
* Offer help if needed
* Sign off personally

## Chaining jobs

One of Trig's powerful capabilities is chaining jobs based on outcomes.

### Success path

```
Job 2 Audience:
- last_completed_Job_1 has any value
- [next action criteria]
```

### Failure path

```
Job 1B Audience:
- last_exited_Job_1 has any value
- last_completed_Job_1 has no value
```

### Progressive context

```
Customer: Acme Corp

Job History:
├── Completed: Welcome Job (Day 2)
├── Completed: First Invoice Job (Day 4)
├── Exited: Gateway Connection Job (Day 12)
└── Currently in: Gateway Connection Retry Job
```

This history enables highly targeted messaging.

## Targeting: organisations vs people

### Organisation-level jobs

Target the account:

* Intervention goes to contacts associated with the organisation
* Useful for account-based actions
* Multiple people may receive messages

### Individual-level jobs

Target specific people:

* Intervention goes to that individual
* Useful for user-specific actions
* More granular targeting

Choose based on what action you're driving. "Invite team members" targets individuals. "Renew contract" targets organisations.

## Measuring effectiveness

### Key metrics

| Metric                  | Formula                                    |
| ----------------------- | ------------------------------------------ |
| **Completion rate**     | Completed / (Completed + Exited)           |
| **Time to completion**  | How long did successful customers take?    |
| **Exit rate**           | What percentage failed to complete?        |
| **Baseline comparison** | Are recipients completing at higher rates? |

### Iteration

Use job data to improve:

* Low completion rate → Adjust messaging, timing, or goal
* Long time to completion → Intervention may be too early
* High exit at specific point → Focus messaging there
* Certain segments complete more → Target them specifically

## Common job patterns

### Onboarding nudge

```
Goal: first_project_created >= 1
Audience:
- sign_up_date > 1 day ago
- sign_up_date < 7 days ago
- first_project_created = 0
Duration: 10 days
Entry: Plain text email with steps
Follow-up: Day 3, Day 7
Exit: Route to "Onboarding Stalled" job
```

### Feature adoption

```
Goal: feature_X_used >= 1
Audience:
- plan = Premium
- feature_X_used = 0
- days_since_signup >= 30
Duration: 14 days
Entry: Email highlighting feature value
Completion: Silent success
Exit: Flag for CSM follow-up
```

### Churn prevention

```
Goal: engagement_restored = true
Audience:
- renewal_date within 90 days
- last_login > 30 days ago
Duration: 30 days
Entry: Personal outreach from CSM
Exit: Escalate to sales
```

## Common questions

<AccordionGroup>
  <Accordion title="How long should jobs run?">
    Keep jobs short and focused. 7 to 14 days for most use cases. If no response in 14 days, try a different approach in a new job.
  </Accordion>

  <Accordion title="Can a customer be in multiple jobs?">
    Yes, but be careful about message volume. Use exclusion criteria to prevent overlap.
  </Accordion>

  <Accordion title="What happens if I pause a job?">
    No new customers enter. Existing customers can still complete or exit normally.
  </Accordion>

  <Accordion title="How do I prevent re-sending to previous recipients?">
    Use `last_entered_[job] has any value` in exclusion criteria.
  </Accordion>

  <Accordion title="Should I use Trig's email or external systems?">
    Either works. Trig sends directly for speed and simplicity. For complex requirements, trigger external systems via webhooks.
  </Accordion>
</AccordionGroup>

## Summary

Jobs are Trig's intervention engine:

1. **Goal-oriented** — Every job has clear completion criteria
2. **Time-bounded** — Set auto-exit to keep jobs focused
3. **Plain text, personal** — Messages should feel human
4. **Timely** — Intervene as close to the trigger as possible
5. **Measurable** — Track completion rate and iterate
6. **Chainable** — Use outcomes to route customers through progressive journeys

Well-designed jobs create a virtuous cycle: insight informs targeting, jobs drive action, outcomes create more insight.
