> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.sailorhq.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sailorhq.io/_mcp/server.

# Introduction

> Build against Sailor's phone-system workflow from your backend.

Use Sailor's public API to configure the phone-system outcomes agents can apply during and after calls.

You can create action buttons, create post-call dispositions, move contacted people between Smart Lists, and receive webhooks when an action runs.

The loop has three parts: your backend configures outcomes, Sailor shows them to agents, and Sailor sends signed, durably retried events back when actions run.

## What You Can Build

#### [Outcome configuration](/phone-system/outcomes)

Create and manage the labels agents see during calls and after calls.

#### [Smart List movement](/phone-system/outcomes)

Add a contacted person to a Smart List, or remove them from every list or selected lists.

#### [Outcome webhooks](/phone-system/webhooks)

Receive the call, outcome, scope, and destination details when an action runs.

#### [Field-level reference](/api-reference)

Use the exact request fields, response fields, validation rules, and webhook schemas.

## Base URL

```text
https://api.sailorhq.io
```

## Supported Endpoints

| Method   | Path                                 | Use it for                                      |
| -------- | ------------------------------------ | ----------------------------------------------- |
| `GET`    | `/phone-system/outcomes`             | List the outcomes configured for the workspace. |
| `POST`   | `/phone-system/outcomes`             | Create a new outcome.                           |
| `PATCH`  | `/phone-system/outcomes/{outcomeId}` | Replace an existing outcome configuration.      |
| `DELETE` | `/phone-system/outcomes/{outcomeId}` | Delete an outcome.                              |

Build against the documented endpoints in these guides and the API Reference. Undocumented paths can change without notice.

## How The Loop Works

#### Authenticate from your backend

Send a bearer token with each request. Keep the token server-side.

#### Configure outcomes

Create `action` outcomes for in-call controls and `disposition` outcomes for the required post-call step.

#### Agents apply outcomes

Sailor shows those outcomes inside the phone-system workflow for the active workspace.

#### Sailor runs the destination

Depending on the outcome, Sailor can move the contacted person into a Smart List, remove them from lists, and prepare the webhook event.

#### Your backend accepts the event

Return any `2xx` status after you store or enqueue the webhook payload.

## Choose Your Path

#### [Build the first loop](/quickstart)

Create an action, receive a webhook, add a disposition, and verify the result.

#### [Understand the model](/phone-system/concepts)

Learn the difference between actions, dispositions, destinations, and webhook events.

#### [Ship a receiver](/phone-system/webhooks)

Build a webhook endpoint that accepts Sailor events without blocking agents.

#### [Check exact fields](/api-reference)

Use the reference when you need the precise contract for an endpoint or payload.