web-chat

Configuración del canal Web Chat (widget embebible) por organización.

Base path: /·9 endpoints·Source: mosend-wb-backend/src/modules/web-chat/web-chat.controller.ts
GET/organizations/:orgId/web-chat/channels
bearer

Lista los canales de web chat de la org.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/web-chat/channels' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "createdAt": "2026-05-01T03:42:18.123Z"
    }
  ],
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/web-chat/channels
bearer

Crea un canal de web chat.

Path params

  • orgIdstringrequerido

Body (JSON)

  • namestringrequerido
  • colorstring
  • welcomeMessagestring
  • allowedDomainsstring[]
  • precaptureEnabledboolean
  • botEnabledboolean
  • enabledboolean

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/web-chat/channels' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"name": "<name>","color": "<color>","welcomeMessage": "<welcomeMessage>","allowedDomains": [],"precaptureEnabled": true,"botEnabled": true,"enabled": true}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
PATCH/organizations/:orgId/web-chat/channels/:id
bearer

Actualiza un canal de web chat.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • namestring
  • colorstring
  • welcomeMessagestring
  • allowedDomainsstring[]
  • precaptureEnabledboolean
  • botEnabledboolean
  • enabledboolean
  • identityRequiredboolean

    Si true, exige firma HMAC al recibir identidad pasada por el host site.

  • operatingHoursobject
  • offlineActionobject
  • offlineMessagestring
  • prechatFieldsobject[]
  • departmentsobject[]
  • proactiveTriggersobject[]
  • linkEmailBannerEnabledboolean

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/web-chat/channels/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"name": "<name>","color": "<color>","welcomeMessage": "<welcomeMessage>","allowedDomains": [],"precaptureEnabled": true,"botEnabled": true,"enabled": true,"identityRequired": true,"operatingHours": {},"offlineAction": {},"offlineMessage": "<offlineMessage>","prechatFields": [],"departments": [],"proactiveTriggers": [],"linkEmailBannerEnabled": true}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
DELETE/organizations/:orgId/web-chat/channels/:id
bearer

Elimina un canal de web chat.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/web-chat/channels/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/web-chat/channels/:id/snippet
bearer

Devuelve el snippet de instalación del widget para el canal.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/web-chat/channels/00000000-0000-0000-0000-000000000000/snippet' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/web-chat/channels/:id/identity-secret
bearer

Genera o rota el secreto HMAC de identidad (se muestra una sola vez).

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/web-chat/channels/00000000-0000-0000-0000-000000000000/identity-secret' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
DELETE/organizations/:orgId/web-chat/channels/:id/identity-secret
bearer

Revoca el secreto HMAC de identidad del canal.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/web-chat/channels/00000000-0000-0000-0000-000000000000/identity-secret' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/conversations/:convId/web-chat/send
bearer

Envía un mensaje del agente a una conversación de web chat.

Path params

  • orgIdstringrequerido
  • convIdstringrequerido

Body (JSON)

  • typestring
    textimagevideoaudiodocument

    Tipo de mensaje. Si no se especifica, default 'text'.

  • bodystring

    Texto del mensaje (requerido si type='text'; opcional como caption en otros).

  • mediaAssetIdstring · uuid

    Id del MediaAsset previamente subido vía /web-chat/media. Requerido cuando type != 'text'.

  • replyToMessageIdstring

    UUID del Message al que el agente responde (cita visible en widget).

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/conversations/00000000-0000-0000-0000-000000000000/web-chat/send' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"type": "text","body": "<body>","mediaAssetId": "00000000-0000-0000-0000-000000000000","replyToMessageId": "00000000-0000-0000-0000-000000000000"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "phoneNumberId": "00000000-0000-0000-0000-000000000000",
    "to": "+573000000000",
    "type": "text",
    "payload": {
      "body": "Hola desde Mosend"
    }
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/conversations/:convId/web-chat/media
bearer

Sube un archivo a S3 para web chat y devuelve su mediaAssetId.

Path params

  • orgIdstringrequerido
  • convIdstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/conversations/00000000-0000-0000-0000-000000000000/web-chat/media' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}