> ## 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.

# Actions

> Execute interventions via email, Slack, and webhooks

Actions are the things Trig does in response to customer activity. They're the "do something" layer of the platform—executing interventions, sending notifications, updating systems, and communicating with customers.

## What are actions?

Every job, behaviour, and stage can trigger actions at key moments. Actions turn insight into intervention.

**Core principle:** Trig observes customer behaviour, identifies when intervention is needed, and actions execute that intervention.

## When actions trigger

Actions fire at specific moments:

### Entry actions

Fire when a customer enters a job, behaviour, or stage.

**Use for:**

* Sending initial outreach
* Notifying your team
* Recording entry in CRM

### Completion actions (follow-up)

Fire when a customer achieves the goal.

**Use for:**

* Congratulating customers
* Notifying team of success
* Recording completion in CRM
* Triggering next-stage jobs

### Exit actions (fallback)

Fire when a customer exits without completing.

**Use for:**

* Notifying team of intervention failure
* Recording failure in CRM
* Triggering escalation or alternative jobs
* Alerting CSMs for manual follow-up

## Action types

### Message customer

Send an email directly to the customer.

| Configuration | Description                           |
| ------------- | ------------------------------------- |
| **Sender**    | Who the email appears from            |
| **Subject**   | Email subject line                    |
| **Body**      | Email content with dynamic attributes |
| **Format**    | Plain text recommended                |

**Example:**

```
From: Anna at Autodesk
Subject: Quick tip to get started

Hi {first_name},

I noticed you joined {board_name} but haven't created your
first project yet. Here are three steps to get started—takes
about 5 minutes.

[steps]

Thanks,
Anna
```

### Send reminder message

Send a follow-up email after a delay if the customer hasn't completed.

| Configuration | Description                |
| ------------- | -------------------------- |
| **Delay**     | Wait X days before sending |
| **Content**   | Same as message customer   |

**Example sequence:**

1. Entry: Send initial email
2. Wait 5 days
3. If not completed: Send reminder
4. Wait 5 more days
5. If still not completed: Exit with fallback actions

### Notify team

Send a notification to your internal team via Slack.

| Configuration | Description                                  |
| ------------- | -------------------------------------------- |
| **Channel**   | Select Slack channel                         |
| **Message**   | Notification content with dynamic attributes |

**Example:**

```
Channel: #customer-alerts
Message: @{case_owner_email} - {organization_name} has entered
the "At Risk" job. They haven't logged in for 30+ days.
```

<Tip>
  **Dynamic @-mentions:** Include an email attribute with @ to ping that person directly in Slack.
</Tip>

### Update attribute

Set or update an attribute value on the customer record.

| Configuration      | Description           |
| ------------------ | --------------------- |
| **Attribute name** | Which field to update |
| **Value**          | What value to set     |

**Example:**

```
Attribute: completed_onboarding_job
Value: true
```

<Warning>
  If you update an attribute that's also synced from CRM, the next sync may overwrite your update. Use Trig-specific fields.
</Warning>

## Dynamic attributes in messages

Actions can include dynamic content from customer attributes.

### How to use

In any message field, insert attribute placeholders:

```
Hi {first_name},

I noticed your team at {organization_name} signed up
{days_since_signup} days ago but hasn't {specific_action} yet.

Here's how to get started: [link]

Thanks,
{sender_name}
```

### Available attributes

Any attribute on the customer record:

* **Person attributes:** first\_name, email, role
* **Organisation attributes:** organization\_name, industry, arr
* **Trig-generated:** last\_entry\_to\_job, days\_in\_stage
* **CRM attributes:** case\_owner\_email, account\_manager

### Handling missing values

If an attribute has no value, the placeholder will be empty. Test messages with real customer data to ensure correct rendering.

## Email configuration

### Integration setup

Before sending emails, you need:

1. **Domain verification:** DNS records to authorise sending
2. **Sender configuration:** Who emails appear from
3. **Subdomain setup:** Often use a subdomain for deliverability

This is handled during onboarding.

### Sender identity

Emails should appear from a real person:

| Good                                                                      | Bad                                                     |
| ------------------------------------------------------------------------- | ------------------------------------------------------- |
| "Anna at Autodesk"                                                        | "[no-reply@autodesk.com](mailto:no-reply@autodesk.com)" |
| [anna@notifications.autodesk.com](mailto:anna@notifications.autodesk.com) | "Autodesk Marketing"                                    |

Personal senders get higher engagement.

### Plain text vs HTML

<Warning>
  **Strong recommendation: Use plain text.**
</Warning>

| Plain Text                    | HTML/Branded                    |
| ----------------------------- | ------------------------------- |
| Looks like from a real person | Looks like marketing automation |
| Higher open rates             | Lower open rates                |
| Higher response rates         | Lower response rates            |
| Avoids spam filters           | More likely filtered            |

## Slack integration

### Setup

1. Authorise Trig to access your Slack workspace
2. Wait for channel enumeration
3. Select channels for notifications

### Channel selection

Target channels like:

* \#customer-success
* \#sales-alerts
* \#trig-notifications

### Message formatting

Slack messages support:

* Dynamic attributes (same as email)
* @-mentions using email addresses
* Basic formatting

## Using attributes to chain jobs

Actions that update attributes enable job chaining:

```
Job 1: Try to get customer to do X
├── On completion: Set "completed_job_1" = true
└── On exit: Set "failed_job_1" = true

Job 2: Target completers
└── Audience: "completed_job_1" = true

Job 1B: Alternative for failures
└── Audience: "failed_job_1" = true
```

## Job action flow example

```
Job: Onboarding Nudge
├── Entry Actions
│   ├── Message Customer: Welcome email with steps
│   └── Update Attribute: entered_onboarding_nudge = true
│
├── Intervention (if not completed)
│   └── Send Reminder: Wait 5 days, send follow-up
│
├── Completion Actions (Follow-Up)
│   ├── Message Customer: Congratulations, here's what's next
│   ├── Notify Team: Customer completed onboarding
│   └── Update Attribute: completed_onboarding = true
│
└── Exit Actions (Fallback)
    ├── Notify Team: Customer failed, needs manual follow-up
    └── Update Attribute: failed_onboarding = true
```

## Action availability by context

| Action           | Entry | Completion | Exit |
| ---------------- | ----- | ---------- | ---- |
| Message Customer | ✓     | ✓          | ✓    |
| Send Reminder    | ✓     | —          | —    |
| Notify Team      | ✓\*   | ✓          | ✓    |
| Update Attribute | ✓     | ✓          | ✓    |

\*May have constraints depending on configuration

## Best practices

### Email content

**Be specific and actionable:**

```
Good: "Click here to complete your profile. It takes 2 minutes."
Bad: "We noticed you haven't finished setting up your account."
```

**Include clear steps:**

```
Here are three steps to send your first invoice:
1. Click "Create Invoice" in the left menu
2. Add your client's email address
3. Click Send

That's it—you'll get a notification when they pay.
```

**Keep it short:**

* 3 to 5 sentences for simple actions
* Bullet points for multi-step instructions
* No long paragraphs

### Notification strategy

**Don't over-notify:**

* Reserve notifications for high-value or high-risk situations
* Use channels, not DMs, for most notifications
* Not every entry needs a Slack notification

**Route appropriately:**

* High-value customers → Dedicated channel + @-mention
* Routine updates → Team channel without @-mention
* Escalations → Specific person @-mentioned

### Attribute management

**Name clearly:**

* `completed_onboarding_job` not `flag_1`
* `last_intervention_date` not `date`

**Don't overwrite CRM fields:**

* Create dedicated Trig fields in your CRM
* Coordinate with CRM admin on write-back strategy

### Testing

**Before going live:**

* Test with small audience
* Verify dynamic attributes render correctly
* Check Slack notifications reach correct channel
* Confirm CRM updates work

**Monitor after launch:**

* Check delivery rates
* Watch for bounces or spam issues
* Verify customers progressing as expected

## Troubleshooting

### Emails not sending

Check:

* Email integration configured?
* Sender verified?
* DNS records in place?
* Job active (not paused)?

### Slack notifications not appearing

Check:

* Slack integration connected?
* Channel enumeration complete?
* Correct channel selected?
* Bot has permission to post?

### Attributes not updating

Check:

* Correct attribute name?
* Attribute exists in system?
* Action actually triggered?
* CRM sync overwriting value?

## Summary

Actions are how Trig turns insight into intervention:

1. **Three trigger points** — Entry, completion, and exit each serve different purposes
2. **Four action types** — Message customer, send reminder, notify team, update attribute
3. **Plain text wins** — Simple, personal emails outperform branded marketing
4. **Chain with attributes** — Use attribute updates to create progressive job sequences
5. **Right action, right moment** — Entry for initial outreach, completion for celebration, exit for escalation
