Chatwoot (self-hosted)
Connect your client's Chatwoot (self-hosted) with a key they paste, and call its API through Operate As.
- Website
- chatwoot.com
- Connects by
- Pasting a Access token
- Category
- Support
- Services
- 1
- Tools
- 113
| Service | Key | Base URL |
|---|---|---|
| Chatwoot (self-hosted) | chatwoot-self-hosted | https://{site}/api/v1 |
Your client also types their chatwoot address (Where your Chatwoot is, such as example.com, without https://).
Connecting
Your client makes a Access token in their Chatwoot (self-hosted) settings and pastes it on their link. Operate As tries it with Chatwoot (self-hosted) before saving it, and stores it encrypted. See Services connected with an API key.
curl https://api.operate.as/v1/me/clients \ -H "Authorization: Bearer $OPERATE_AS_API_KEY"[ { "id": "6f1c2a7e-...", "name": "Miller Dental", "services": [ "chatwoot-self-hosted" ] }]Permissions
| What the client reads | Permission it asks for |
|---|---|
| Use the Chatwoot (self-hosted) key you paste, with only the access you gave that key | Chosen on the provider's screen |
Tools
Install Chatwoot (self-hosted)'s typed package for your language:
pip install operate-as-chatwoot-self-hostedchatwoot-self-hosted.add_new_agent_to_accountcurl -X POST https://api.operate.as/v1/actions/chatwoot-self-hosted.add_new_agent_to_account \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "account_id": "<account_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/chatwoot-self-hosted.add_new_agent_to_account
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Pass-through
Paths continue from https://{site}/api/v1, with the parts in braces filled in from your client's account. Your Operate As key goes in Authorization; the client's access is added for you.
See Pass-through requests for the full request and response format.
curl "https://api.operate.as/v1/clients/6f1c2a7e-.../chatwoot-self-hosted/..." \ -H "Authorization: Bearer $OPERATE_AS_API_KEY"{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}When access ends
A key works until your client deletes it in Chatwoot (self-hosted). They can paste a new one on the same link at any time, and your workflows carry on without changes.
See Keeping access alive and Removing access.
{ "status": 401, "data": { "…": "the service's own error" }, "encoding": "json"}