# RevoplyAI developer docs > The RevoplyAI REST API, signed webhooks, flow triggers and the website widget. Every page below links to its Markdown version. - [RevoplyAI developer docs](https://docs.revoplyai.com/index.md): Connect your own systems to RevoplyAI with signed webhooks, flow triggers, API connections and the website widget. - Get started - [Introduction](https://docs.revoplyai.com/get-started/introduction/index.md): The concepts these docs use, and the JSON conventions every event and response follows. - [Security](https://docs.revoplyai.com/get-started/security/index.md): Verify what we send you, keep secrets on your server, and what to do when a secret or URL leaks. - [Testing safely](https://docs.revoplyai.com/get-started/testing-safely/index.md): There is no sandbox. How to test webhooks with sample events, reach a local receiver, and keep test flows away from real customers. - [Plans and limits](https://docs.revoplyai.com/get-started/plans-and-limits/index.md): Which plans include webhooks, flow triggers and API connections, and the bounds each of them enforces. - [Rate limits](https://docs.revoplyai.com/get-started/rate-limits/index.md): How many requests flow trigger URLs accept, how the limits answer, and how to retry. - [Idempotency](https://docs.revoplyai.com/get-started/idempotency/index.md): How an Idempotency-Key makes flow trigger retries safe, how long keys are remembered, and how to deduplicate our events. - [Versioning](https://docs.revoplyai.com/get-started/versioning/index.md): What we may change without notice, what counts as breaking, and how webhook payload versions and the REST API version work. - [Identifiers](https://docs.revoplyai.com/get-started/identifiers/index.md): Phone numbers, WhatsApp ids, other channels' user ids and our own ids, and when a phone number is null. - [Channels and capabilities](https://docs.revoplyai.com/get-started/channels-and-capabilities/index.md): The channel types events carry, and what each channel can send and report back. - [WhatsApp messaging rules](https://docs.revoplyai.com/get-started/whatsapp-messaging-rules/index.md): The 24-hour service window, when a template is required, how Meta bills templates, and what a QR-linked number cannot do. - [Opt-out and compliance](https://docs.revoplyai.com/get-started/opt-out-and-compliance/index.md): How customers opt out, what an opt-out stops, how your system hears about it, and how long we keep integration data. - Guides - [Receive messages with webhooks](https://docs.revoplyai.com/guides/receive-messages-with-webhooks/index.md): Build a receiver that gets every customer message as it arrives, verifies it, deduplicates it and answers in time. - [Verify webhook signatures](https://docs.revoplyai.com/guides/verify-webhook-signatures/index.md): Verify X-Revoply-Signature in Node.js, Python, PHP or C#, get the raw body in Express, Flask, Laravel and ASP.NET, and debug failures. - [Start a flow from your system](https://docs.revoplyai.com/guides/start-a-flow-from-your-system/index.md): Send a WhatsApp template when an order ships, by posting your order JSON to a flow trigger URL, with safe retries. - [Hand over to a human](https://docs.revoplyai.com/guides/hand-over-to-a-human/index.md): Open a ticket in your helpdesk when the assistant hands a conversation to your team, using the conversation.handover event. - API reference - [API reference](https://docs.revoplyai.com/api-reference/index.md): The machine-readable contract generated from the OpenAPI specification, with the flow trigger endpoint and every webhook event. - Hooks - [Start an automation](https://docs.revoplyai.com/api-reference/hooks/start-flow-from-hook/index.md): Starts the flow this hook belongs to for the customer your JSON names, by the paths set in the flow's trigger. - Webhooks - [Webhooks](https://docs.revoplyai.com/webhooks/index.md): Events we post to your HTTPS endpoint as they happen, signed so you can verify them, delivered at least once. - [Setting up endpoints](https://docs.revoplyai.com/webhooks/setting-up-endpoints/index.md): Add a webhook endpoint in the dashboard, the rules its URL must meet, and what editing, switching off and deleting do. - [Signatures](https://docs.revoplyai.com/webhooks/signatures/index.md): How X-Revoply-Signature is computed and exactly how to verify it, with test vectors and verifiers in four languages. - [Retries and the delivery log](https://docs.revoplyai.com/webhooks/retries-and-delivery-log/index.md): What counts as a failed delivery, the retry schedule, when an endpoint is switched off, and how to read the log and resend. - [Testing webhooks](https://docs.revoplyai.com/webhooks/testing/index.md): Send a ping or any event's example to an endpoint, tell tests from real events, and test a receiver on your computer. - Events - [Events](https://docs.revoplyai.com/webhooks/events/index.md): Every event an endpoint can receive, what fires it and what it carries. - **Messages** - [message.received](https://docs.revoplyai.com/webhooks/events/message-received/index.md): A customer wrote. - **Conversations** - [conversation.started](https://docs.revoplyai.com/webhooks/events/conversation-started/index.md): A new conversation began. - [conversation.handover](https://docs.revoplyai.com/webhooks/events/conversation-handover/index.md): The conversation was handed to the team. - [conversation.assigned](https://docs.revoplyai.com/webhooks/events/conversation-assigned/index.md): The conversation was assigned, or unassigned. - [conversation.resolved](https://docs.revoplyai.com/webhooks/events/conversation-resolved/index.md): The conversation was resolved or closed. - **Contacts** - [contact.created](https://docs.revoplyai.com/webhooks/events/contact-created/index.md): A contact was added. - [contact.updated](https://docs.revoplyai.com/webhooks/events/contact-updated/index.md): A contact's details changed. - [contact.opted_out](https://docs.revoplyai.com/webhooks/events/contact-opted-out/index.md): A contact opted out of messages. - **Leads** - [lead.qualified](https://docs.revoplyai.com/webhooks/events/lead-qualified/index.md): A conversation became a qualified lead. - **Appointments** - [appointment.booked](https://docs.revoplyai.com/webhooks/events/appointment-booked/index.md): An appointment was booked. - [appointment.cancelled](https://docs.revoplyai.com/webhooks/events/appointment-cancelled/index.md): An appointment was cancelled. - **Automations** - [flow.completed](https://docs.revoplyai.com/webhooks/events/flow-completed/index.md): An automation finished. - [flow.failed](https://docs.revoplyai.com/webhooks/events/flow-failed/index.md): An automation failed. - **Tests** - [ping](https://docs.revoplyai.com/webhooks/events/ping/index.md): A test from the dashboard. - Flow triggers - [Flow triggers](https://docs.revoplyai.com/flow-triggers/index.md): Start a WhatsApp flow for a customer when something happens in your system, by posting JSON to the flow's private URL. - [Sending requests](https://docs.revoplyai.com/flow-triggers/sending-requests/index.md): The request a flow trigger accepts, the path syntax for mapping fields, and how phone numbers and languages are read. - [Responses and errors](https://docs.revoplyai.com/flow-triggers/responses-and-errors/index.md): The JSON every flow trigger request is answered with, every status it can carry, and which ones to retry. - Connect your systems - [Connect your systems](https://docs.revoplyai.com/connect-your-systems/index.md): How flows and the assistant call your own API through API connections, HTTP steps and AI actions. - [API connections](https://docs.revoplyai.com/connect-your-systems/api-connections/index.md): One of your systems as flows and the assistant reach it, its base URL, authentication, default headers and timeout. - [HTTP steps](https://docs.revoplyai.com/connect-your-systems/http-steps/index.md): A flow step that calls your API through a connection, keeps values from the answer and branches on success or failure. - [AI actions](https://docs.revoplyai.com/connect-your-systems/ai-actions/index.md): Calls to your API the assistant may make while it talks to a customer, and the safeguards around who they are about. - [Requests we send](https://docs.revoplyai.com/connect-your-systems/requests-we-send/index.md): What every request from RevoplyAI to your systems looks like, the addresses we refuse, and the timeouts, sizes and daily limits. - Website widget - [Install the widget](https://docs.revoplyai.com/widget/index.md): Add the RevoplyAI chat widget to a website with one script tag, its attributes, or an iframe. - [JavaScript API](https://docs.revoplyai.com/widget/javascript-api/index.md): Open and close the widget from your page, tell it who the visitor is, and pass page context, with window.RevoplyAI. - [Widget events](https://docs.revoplyai.com/widget/events/index.md): The events the website widget raises in your page, what each one carries, and how to listen for them. - [Security and CSP](https://docs.revoplyai.com/widget/security-and-csp/index.md): The Content-Security-Policy directives the widget needs, what it stores in the browser, and how to stop other sites using your channel. - Resources - [Changelog](https://docs.revoplyai.com/resources/changelog/index.md): What changed in the RevoplyAI API, webhooks, flow triggers and website widget, newest first. - [OpenAPI](https://docs.revoplyai.com/resources/openapi/index.md): Download the RevoplyAI OpenAPI specification and the webhook signature test vectors. - [AI assistants](https://docs.revoplyai.com/resources/ai-assistants/index.md): Use these docs with ChatGPT, Claude and coding assistants through llms.txt, Markdown versions of every page and page actions. - [Support](https://docs.revoplyai.com/resources/support/index.md): How to get help with webhooks, flow triggers, API connections and the widget, and what to include.