Skip to content

chatwoot ​

← All modules

6 endpoints.

POST /api/v1/webhooks/chatwoot ​

Receive Webhook

200 — Successful Response

json
{
  "additionalProperties": true,
  "type": "object",
  "title": "Response Receive Webhook Api V1 Webhooks Chatwoot Post"
}

GET /api/v1/chatwoot/webhook-info ​

Webhook Info

The URL + secret to paste into Lubb Inbox's webhook settings — auto- provisions a secret on first call so there's nothing to generate by hand.

200 — Successful Response

json
{
  "additionalProperties": true,
  "type": "object",
  "title": "Response Webhook Info Api V1 Chatwoot Webhook Info Get"
}

Link Customer

Parameters

NameInRequiredTypeDescription
customer_idpathyesinteger

Request body

json
{
  "properties": {
    "chatwoot_contact_id": {
      "type": "integer",
      "title": "Chatwoot Contact Id"
    }
  },
  "type": "object",
  "required": [
    "chatwoot_contact_id"
  ],
  "title": "ChatwootLinkIn"
}

200 — Successful Response

json
{
  "type": "object",
  "additionalProperties": true,
  "title": "Response Link Customer Api V1 Customers  Customer Id  Chatwoot Link Post"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

Link Contact

Parameters

NameInRequiredTypeDescription
contact_idpathyesinteger

Request body

json
{
  "properties": {
    "chatwoot_contact_id": {
      "type": "integer",
      "title": "Chatwoot Contact Id"
    }
  },
  "type": "object",
  "required": [
    "chatwoot_contact_id"
  ],
  "title": "ChatwootLinkIn"
}

200 — Successful Response

json
{
  "type": "object",
  "additionalProperties": true,
  "title": "Response Link Contact Api V1 Crm Contacts  Contact Id  Chatwoot Link Post"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

GET /api/v1/chatwoot/launch ​

Inbox Launch

A signed-in Lubb Inbox URL for the caller, into their active org's account, matched to a Lubb Inbox agent by email. Framing is judged against the browser's own origin (the API may sit on a different host to the app — e.g. api.lubb.co.za serving lubb.co.za), so prefer the Origin header over our own hostname.

200 — Successful Response

json
{}

GET /api/v1/chatwoot/features ​

Inbox Feature Flags

This site's LubbInbox feature switches, as set on the app's Features grid.

The dashboard needs these client-side: it builds its category tabs from the site's INSTALLED APPS rather than from GET /erp/categories (see features/dashboard/index.tsx), so a server-side filter on that list would hide nothing. Read-only and non-secret — any signed-in user gets it, since every signed-in user's tab strip depends on it; writing them is admin-only, on the grid.

200 — Successful Response

json
{
  "additionalProperties": true,
  "type": "object",
  "title": "Response Inbox Feature Flags Api V1 Chatwoot Features Get"
}

Lubb One Documentation