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

# Responsibilities and routines

> Standing jobs Ari owns: triggers and cadences, watch sources, delivery, write mode, proposals, test runs, and pausing or removing one.

A **responsibility** is a job Ari owns for a rep or for the whole team: the outcome it is
accountable for, who it applies to, and when it acts. Underneath, each responsibility runs as one or
more **routines**: one per event trigger and one for its cadence. You manage responsibilities on
the **Ari** page in the app or by asking Ari in Slack; routines are visible under **Routines** for
anyone who wants the run-by-run detail.

## Creating one

Tell Ari what you want in Slack or the app ("Every Monday at 8, tell me which of my open deals had
no activity last week"), or click **New responsibility** on the Ari page. Either way you set:

| Field          | What it is                                                                           |
| -------------- | ------------------------------------------------------------------------------------ |
| **Outcome**    | What Ari is accountable for, in your words. This is the instruction the run follows. |
| **Scope**      | You, or the team. Team-scoped responsibilities need a team admin.                    |
| **Triggers**   | Events that start a run, with optional filters.                                      |
| **Cadence**    | A schedule that starts a run.                                                        |
| **Watch**      | What the run re-reads each time, so it reports the live state.                       |
| **Delivery**   | Where results go: a Slack DM, a Slack thread, or the in-app feed.                    |
| **Write mode** | Read only, require approval, or auto-approve within the team policy.                 |

A responsibility needs at least one trigger or a cadence.

### Triggers

| Event                   | Fires when                                                            | Filterable by                    |
| ----------------------- | --------------------------------------------------------------------- | -------------------------------- |
| Call logged             | A call is logged by anyone in scope                                   | Disposition, duration, list, rep |
| Follow-up overdue       | A follow-up's due date passed without completion. Once per task.      | Rep, contact fields              |
| Contact snooze expiring | A snoozed contact's snooze ends within the next day. Once per snooze. | Rep                              |
| Enrichment completed    | A contact-enrichment request finished. Once per request.              | Rep, list                        |
| List build completed    | A list-builder session filled every cell. Once per session.           | Rep, list                        |

Filters compare one field of the event's record: equals, not equals, in, not in, exists, greater
or less than. A filter on a field the record does not have does not match for equals and the
comparisons, and does match for not-equals; use **exists** when you mean either explicitly.

### Cadence

Presets: every 15 minutes, every 30 minutes, hourly, daily, weekdays, weekly (pick the day),
monthly (pick the date), or a custom cron expression. Times are in the timezone you pick, so
"every day at 9" means your 9. The floor is 15 minutes.

### Watch sources

A responsibility can watch one or more of:

| Source        | What Ari re-reads on each run                                  |
| ------------- | -------------------------------------------------------------- |
| Slack thread  | Every message in the thread since the last run                 |
| Slack channel | Top-level channel messages, which is where alerting tools post |
| Email thread  | New messages on a connected mailbox's thread                   |
| URL           | The page's current content                                     |
| Record        | A contact, company, deal or list                               |
| Alert         | A named alert source your team has connected                   |

A monitor created from a Slack thread watches that thread and reports back into it by default.

## Runs

Each run shows in the feed with what triggered it (schedule, event, or manual), what it did, what
it asked, and the result. Open a run for the step-by-step log, including every tool call and every
approval or question.

**Test run** on a responsibility starts one run now, with the same write mode, so you can see the
output before the schedule takes over.

## Approvals and questions inside a run

If a run reaches a write that needs approval, it pauses and posts a card to the delivery target
and to the feed; the run resumes when someone decides. If it needs a choice only you can make, it
asks a question the same way. Pending approvals and questions from responsibilities are what the
morning heartbeat counts when it tells a rep what is waiting.

## Proposals

Ari watches for jobs worth owning: the same overdue follow-ups every week, a list you keep
rebuilding, a report you ask for every Monday. When it sees one it posts a **proposal** with a
title, a rationale in your terms, and the responsibility it would create.

* **Accept** creates the responsibility as drafted; you can edit it afterwards.
* **Dismiss** closes it, and Ari will not propose the same job again.

Proposals appear in Slack as cards and on the Ari page under **Proposals**.

## Pause, resume, delete

* **Pause** stops the schedule and ignores the events. Runs in progress finish. Pending approvals
  stay pending.
* **Resume** re-arms the schedule and events.
* **Delete** removes the responsibility and its routines. Run history stays in the work log.

## Team-scoped responsibilities

A team admin can create a responsibility for the whole team: one run per rep, delivered to each
rep, or one run across the team delivered to the manager. Reps can see team responsibilities that
apply to them but cannot edit them.
