# Frictionless - [Frictionless for developers](https://docs.usefrictionless.com/index.md): Put your Frictionless inbox on your website, take bookings, and show your agents who each customer is. - [API keys and secrets](https://docs.usefrictionless.com/authentication.md): Which secret does what, where to create them, and how to rotate one without downtime. - [Install the website chat](https://docs.usefrictionless.com/website-chat/install.md): A chat button on every page of your website, answered from the same inbox as WhatsApp, Instagram and Messenger. - [Next.js and React](https://docs.usefrictionless.com/website-chat/frameworks.md): Load the chat once in a layout that stays mounted, with types for window.Frictionless. - [Control the chat](https://docs.usefrictionless.com/website-chat/control.md): Open it from your own button, show unread counts, and handle sign-in and sign-out. - [Allowed websites and CSP](https://docs.usefrictionless.com/website-chat/security.md): Stop other websites from showing your chat, and what to allow in a Content Security Policy. - [Take bookings on your website](https://docs.usefrictionless.com/bookings/overview.md): Let customers pick a free time on your own website. Every booking lands in your Frictionless inbox. - [Our booking form](https://docs.usefrictionless.com/bookings/our-form.md): Two lines draw your free times and your booking form right on your page. - [Your own booking form](https://docs.usefrictionless.com/bookings/own-form.md): Keep your form exactly as designed and send its bookings to Frictionless. - [Booking events](https://docs.usefrictionless.com/bookings/events.md): Know when someone books, for analytics or your own thank-you screen. - [Context API](https://docs.usefrictionless.com/context-api/overview.md): Show your support agents who a customer is and what just happened to them, from your own website and servers. - [Send context from your server](https://docs.usefrictionless.com/context-api/server.md): Create contacts and send events with the REST API. - [Identify signed-in users](https://docs.usefrictionless.com/context-api/website.md): Tell the chat who is signed in, and what just happened on the page. - [Actions: buttons that call your server](https://docs.usefrictionless.com/context-api/actions.md): Put buttons like Retry transfer or Resend OTP beside each chat. - [Connect WhatsApp](https://docs.usefrictionless.com/channels/whatsapp.md): Link your WhatsApp Business number so every customer message lands in your Frictionless inbox. About two minutes, all inside a Facebook window. - [API reference](https://docs.usefrictionless.com/api-reference/introduction.md): The Context API: base URL, authentication, limits and errors. - [Get a contact](https://docs.usefrictionless.com/api-reference/contacts/get-a-contact.md): The contact and its latest 20 events. Useful when checking an integration. - [Create or update a contact](https://docs.usefrictionless.com/api-reference/contacts/create-or-update-a-contact.md): Only the fields you send change. Set an attribute to `null` to remove it. A phone number links the contact to their WhatsApp chats, even ones that start later. - [Delete a contact](https://docs.usefrictionless.com/api-reference/contacts/delete-a-contact.md): Removes the contact and its events, for example when a user deletes their account with you. Chats and messages stay. - [Send an event](https://docs.usefrictionless.com/api-reference/events/send-an-event.md): Something that happened to a contact. It goes on the customer's timeline, and as a card in any chat with them from the last 24 hours. Send a `userId`, a `phone`, or both. ## OpenAPI Specs - [openapi](/openapi.yaml) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.