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

# Wyzwalacz API

> Uruchom połączenie wychodzące agenta głosowego z zewnętrznego systemu, np. n8n, Zapiera albo własnego kodu.

Połączenie wychodzące zlecasz jednym żądaniem POST z
[kluczem API](../configurations/api-keys) w nagłówku `X-API-Key`. Agent
dzwoni ze swojego numeru.

## Żądanie

```bash theme={null}
curl -X POST "https://app.brosbots.com/api/v1/agents/{agent_id}/calls" \
  -H "X-API-Key: bb_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "+48123456789",
    "initial_context": {
      "user": { "name": "Jan" }
    }
  }'
```

`{agent_id}` to ID agenta, np. `agent_7fK2mQ9xLp3RtV8wYb1N` (w edytorze
agenta, obok nazwy) albo jego numer.

| Pole | Wymagane | Opis |
| - | - | - |
| `phone_number` | tak | Numer, pod który agent dzwoni, w formacie E.164 (`+48...`) |
| `initial_context` | nie | Obiekt JSON z danymi dla agenta |

`phone_number` i `initial_context` to pola **obok siebie** na najwyższym
poziomie ciała. Numeru nie wkładasz do `initial_context` - agent i tak widzi
go jako `{{initial_context.phone_number}}`.

## Initial Context

`initial_context` to obiekt JSON z dowolnymi danymi kontekstowymi, do których
agent ma mieć dostęp. Odwołujesz się do nich w promptach przez **Handle Bars**,
czyli wartości w `{{` i `}}`. Dla żądania powyżej imię rozmówcy w promptach
to `{{initial_context.user.name}}`.

## Odpowiedź

```json theme={null}
{ "status": "initiated", "workflow_run_id": 580, "workflow_run_name": "WR-API-4821" }
```

`workflow_run_id` to ID rozmowy. Po jej zakończeniu odczytasz ją przez
`GET /agents/{agent_id}/conversations/{workflow_run_id}` - zobacz
[Wprowadzenie do API](/pl/api-reference/introduction#odczyt-rozmowy).

## Błędy

| Status | Kiedy |
| - | - |
| `400` | Telefonia organizacji nie jest skonfigurowana |
| `402` | Brak środków na połączenia |
| `403` | Dzwonienie wychodzące zablokowane dla organizacji (plan, weryfikacja) albo numer jest na jej liście Nie dzwonić (`detail` zaczyna się od `do_not_call`) |
| `404` | Agent nie istnieje lub należy do innej organizacji |
| `409` | Poza godzinami 8:00-21:00 czasu odbiorcy. Nagłówek `Retry-After` i pole `detail.retry_at` mówią, kiedy można zadzwonić |
| `429` | Wszystkie kanały wychodzące zajęte. Ponów po tylu sekundach, ile podaje `Retry-After` |

<Note>
  Agenci z węzłem wyzwalacza w przepływie mają też starszy adres
  `POST /api/v1/triggers/{trigger_id}/calls` z tym samym ciałem i tymi samymi błędami.
  Działa dalej dla istniejących integracji. Nowe buduj na
  `/agents/{agent_id}/calls` - nie wymaga węzła wyzwalacza.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.