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

# Integration catalog

> Browse the platforms, services, and actions your flows can call

The catalog is the registry of every operation a task can perform. It is organized in a three-level hierarchy — **Platforms** contain **Services**, which contain **Actions** — and is fully browsable through public, unauthenticated endpoints. When you build a flow, each task names one action from the catalog and supplies parameters matching that action's schema.

## The hierarchy

| Level    | Example ID                                  | What it is                           |
| -------- | ------------------------------------------- | ------------------------------------ |
| Platform | `five9`                                     | A third-party brand or provider.     |
| Service  | `five9__configuration_service`              | A specific API the platform exposes. |
| Action   | `five9__configuration_service__add_to_list` | A single operation on that service.  |

IDs follow a strict naming convention: segments joined by double underscores (`__`), each segment lowercase alphanumeric with single underscores. The ID encodes its own ancestry — an action ID is always `platform__service__action`, so `five9__configuration_service__add_to_list` tells you the platform (`five9`), the service (`five9__configuration_service`), and the operation (`add_to_list`) at a glance.

A task references all three levels plus a version:

```json theme={null}
{
  "task_id": "task_1",
  "task_name": "Add to list",
  "platform_id": "five9",
  "service_id": "five9__configuration_service",
  "action_id": "five9__configuration_service__add_to_list",
  "action_version": "1.0",
  "connection_id": "conn_e5f6g7h8",
  "parameters": { "list_name": "Outbound Q3" }
}
```

`action_version` defaults to `"1.0"`; actions carry a `version` so behavior can evolve without breaking existing flows.

## Browsing the catalog

All catalog endpoints are read-only and require **no authentication**. List endpoints support `status`, `limit` (default 50), and `skip` query parameters.

| Method | Endpoint                                    | Returns                                                 |
| ------ | ------------------------------------------- | ------------------------------------------------------- |
| `GET`  | `/catalog/platforms`                        | All platforms.                                          |
| `GET`  | `/catalog/platforms/{platform_id}`          | One platform.                                           |
| `GET`  | `/catalog/platforms/{platform_id}/services` | A platform's services.                                  |
| `GET`  | `/catalog/services/{service_id}`            | One service.                                            |
| `GET`  | `/catalog/services/{service_id}/actions`    | A service's actions.                                    |
| `GET`  | `/catalog/actions/{action_id}`              | One action, with its full parameter and output schemas. |

```bash theme={null}
curl "$BASE_URL/catalog/actions/five9__configuration_service__add_to_list"
```

Every catalog entry carries a `status`: `active` (usable now), `coming_soon`, and `inactive` (platforms and services) or `deprecated` (actions).

## What each level tells you

<AccordionGroup>
  <Accordion title="Platform">
    Identity and discovery: `name`, `icon`, `tags` (e.g. `contact-center`, `ccaas`), and `status`. Use tags to find platforms by capability.
  </Accordion>

  <Accordion title="Service">
    How the underlying API works: `protocol` (REST, SOAP, GraphQL, gRPC, SMTP, or WebSocket), `auth_method` (what kind of credentials a [connection](/concepts/connections) needs — `basic_auth`, `oauth2`, `client_credentials`, `jwt`, `api_key`, or `soap_wss`), `base_url`, and a `docs_url` pointing at the vendor's own documentation.
  </Accordion>

  <Accordion title="Action">
    The contract your task must satisfy: `parameters`, `output_schema`, an optional `sample_output`, and batching capability (`batch_capable` plus `batch_settings` such as `max_records_per_call`).
  </Accordion>
</AccordionGroup>

### Action parameters

Each action defines its parameters as a schema — name, type, whether it's required, and a description:

```json theme={null}
{
  "parameters": {
    "list_name": {
      "type": "string",
      "required": true,
      "description": "Name of the target contact list"
    }
  }
}
```

Your task's `parameters` object supplies these values, with [expressions](/concepts/expressions) anywhere you need runtime data. The `output_schema` documents the fields the action returns, which downstream steps can reference as `{{step_id.task_id.output.<field>}}`.

## What's in the catalog

**Five9** is the flagship platform: contact center operations against the Five9 Configuration Service, including dialing-list actions like `five9__configuration_service__add_to_list`. These actions require a [connection](/concepts/connections) with your Five9 credentials, and the list operations are batch-capable for [batched delivery](/concepts/batching).

**GetDialed utilities** (`getdialed` platform, `getdialed__utils` service) are built-in helpers that need no connection:

| Action                    | What it does                                                                                                              |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `getdialed__utils__echo`  | Returns its parameters as output — handy for testing a flow's wiring and expressions without touching an external system. |
| `getdialed__utils__sleep` | Waits for `duration_seconds` (default 60) before completing — useful for simulating a long-running task.                  |

<Tip>
  The [quickstart](/quickstart) builds its first flow entirely from `getdialed__utils__echo`, so you can see the full trigger-to-result loop before setting up any credentials.
</Tip>

## Next steps

<CardGroup cols={2}>
  <Card title="Connections" icon="plug" href="/concepts/connections">
    Store credentials for the platforms your tasks call.
  </Card>

  <Card title="Flow definitions" icon="file-code" href="/concepts/flow-definitions">
    Assemble catalog actions into steps and tasks.
  </Card>

  <Card title="Batched delivery" icon="layer-group" href="/concepts/batching">
    Use batch-capable actions for high-volume writes.
  </Card>

  <Card title="API reference" icon="square-terminal" href="/api-reference/introduction">
    Full request and response schemas for every catalog endpoint.
  </Card>
</CardGroup>
