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

# What Ringg Provides

> The credentials, AI agent, delivery behaviour and dashboard visibility Ringg provides for each WhatsApp Relay number.

## Credentials and endpoints

Ringg sends you these once your number is registered, separately for staging and production.

| Item | Value | Notes |
| - | - | - |
| Base URL, production | `https://prod-api.ringg.ai/cp/relay/whatsapp` | |
| Base URL, staging | `https://stage-api.ringg.ai/cp/relay/whatsapp` | |
| API key | Your Ringg workspace API key | Sent as `X-API-Key`. It identifies your workspace and only works for numbers your workspace owns. |
| Signing secret | One per number | Used to sign every request. It is shown once at registration, so store it securely. |

### Rotating the signing secret

Ringg can issue a new signing secret at any time while the old one keeps working. Switch your service to the new secret, confirm traffic is flowing, then ask Ringg to retire the old one. Requests signed with either secret are accepted in between, so there is no downtime.

## The AI agent

Ringg sets up and maintains the AI agent attached to your number:

* **Prompt and tone:** written for your use case, in the languages your customers use.
* **Knowledge:** knowledge bases and tools, such as your product data, pricing APIs and document links.
* **Handover:** the agent continues a conversation your human agent started, without greeting again or asking for what the customer already said.
* **Post-chat:** analysis and [chat events](/whatsapp/events) once a conversation closes.

Changes to the agent's behaviour are made on Ringg's side; your integration doesn't change.

## Delivery behaviour

| Ringg | Detail |
| - | - |
| Accepts your messages durably | `/inbound` answers `202` only after the message is stored. A failed turn is retried by Ringg, not by you. |
| Processes each message once | Keyed on `value.messages[0].id`. |
| Keeps replies in order | One reply per chat in flight; the next after your `2xx`. Every reply carries a per-chat `sequence`. |
| Retries your webhook | Up to 8 attempts on timeouts, network errors and `408`/`425`/`429`/`5xx`, backing off from 1 s to 60 s, and honouring `Retry-After`. |
| Stops on a permanent rejection | Any other `4xx` from your webhook ends delivery of that reply. It is recorded as not delivered and kept out of the agent's context. |
| Keeps the conversation honest | Replies acked `failed` or `skipped` are hidden from the agent, so it never refers to something the customer didn't see. |
| Closes chats Meta won't deliver to | If you ack a reply `failed` with Meta error `131047`, `131026` or `131051`, Ringg closes the chat. |

## In the Ringg dashboard

* **Numbers:** your relay numbers carry a **Relay WhatsApp** tag.
* **Logs → WhatsApp:** every relay conversation, with its transcript and analysis. Where a human agent handed over, the transcript marks **Handed over to AI agent** and **Handed over to human agent**. The agent side is labelled **Human agent** or **AI agent**.

## Support

When something looks wrong, send Ringg the `trace_id` from the error response, plus the `chat_id`, `event_id` and `phone_number_id` involved, and the time. See [Troubleshooting](/whatsapp/relay/troubleshooting).


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