Bot · Configuración

Modo del bot por número: OFF, RULES_ONLY, RULES_PLUS_AI_FALLBACK, AI_AGENT.

Base path: /organizations/:orgId/bot/config·4 endpoints·Source: mosend-wb-backend/src/modules/bot/bot-config/bot-config.controller.ts
GET/organizations/:orgId/bot/config
bearer

Lista la configuración del bot por número activo de la org.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/bot/config' \
  -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/bot/config/:phoneId
bearer

Obtiene la configuración del bot de un número.

Path params

  • orgIdstringrequerido
  • phoneIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/bot/config/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"
}
PUT/organizations/:orgId/bot/config/:phoneId
bearer

Crea o actualiza la configuración del bot de un número.

Path params

  • orgIdstringrequerido
  • phoneIdstringrequerido

Body (JSON)

  • enabledboolean
  • modestring
    OFFRULES_ONLYRULES_PLUS_AI_FALLBACKAI_AGENT
  • cooldownSecondsnumber

    OBSOLETO: ya no descarta mensajes entrantes. Se acepta para no romper clientes viejos, pero no tiene efecto. Ver los dos campos siguientes.

  • debounceSecondsnumber

    Segundos de silencio antes de responder, para agrupar los mensajes seguidos de una persona en un solo turno. 0 = responder de inmediato.

  • maxRepliesPerWindownumber

    Tope de respuestas del bot a un mismo contacto dentro de la ventana; al superarlo pasa a humano. 0 = sin tope.

  • replyWindowMinutesnumber
  • postFlowGraceMinnumber

    Minutos tras terminar un flujo en los que el bot no vuelve a arrancarlo, para que el cliente no lo reinicie sin querer. 0 = sin gracia. Conviene bajarlo si los flujos terminan preguntando algo: durante esos minutos, quien conteste lo que se le preguntó no recibe respuesta.

  • disclosureMessagestring
  • humanHandoffKeywordsstring[]
  • handoffMessagestring

    Texto que el bot envía al cliente cuando dispara handoff (tool del agente, keyword, regla o flujo). String vacío = no enviar nada.

  • aiProviderstring
    anthropicopenaiopenroutergroqmeta
  • aiModelstring
  • aiSystemPromptstring
  • aiTemperaturenumber
  • aiMaxTokensnumber
  • intentClassifierEnabledboolean
  • knowledgeTopKnumber
  • knowledgeMinSimilaritynumber
  • knowledgeTagsstring[]
  • welcomeEnabledboolean
  • outOfHoursEnabledboolean
  • fallbackEnabledboolean
  • outOfHoursScheduleobject
  • outOfHoursTaskEnabledboolean
  • outOfHoursTaskMessagestring

    Admite {apertura}. Vacío = no avisar al cliente.

  • outOfHoursTaskGraceMinnumber
  • followUpEnabledboolean
  • followUpAfterMinnumber
  • followUpCloseAfterMinnumber
  • followUpModestring
    AITEXT
  • followUpMessagestring
  • followUpCloseMessagestring

    Vacío = cerrar sin despedida.

  • protectedValuesstring[]

    Cuentas y números que el bot conoce pero nunca envía.

Respuestas

  • 200
curl -X PUT 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/bot/config/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"enabled": true,"mode": "OFF","cooldownSeconds": 0,"debounceSeconds": 0,"maxRepliesPerWindow": 0,"replyWindowMinutes": 0,"postFlowGraceMin": 0,"disclosureMessage": "<disclosureMessage>","humanHandoffKeywords": [],"handoffMessage": "<handoffMessage>","aiProvider": "anthropic","aiModel": "<aiModel>","aiSystemPrompt": "<aiSystemPrompt>","aiTemperature": 0,"aiMaxTokens": 0,"intentClassifierEnabled": true,"knowledgeTopK": 0,"knowledgeMinSimilarity": 0,"knowledgeTags": [],"welcomeEnabled": true,"outOfHoursEnabled": true,"fallbackEnabled": true,"outOfHoursSchedule": {},"outOfHoursTaskEnabled": true,"outOfHoursTaskMessage": "<outOfHoursTaskMessage>","outOfHoursTaskGraceMin": 0,"followUpEnabled": true,"followUpAfterMin": 0,"followUpCloseAfterMin": 0,"followUpMode": "AI","followUpMessage": "<followUpMessage>","followUpCloseMessage": "<followUpCloseMessage>","protectedValues": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "mode": "RULES_PLUS_AI_FALLBACK",
    "systemPrompt": "Eres un asistente de soporte amable."
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
PATCH/organizations/:orgId/bot/config/:phoneId/toggle
bearer

Activa o desactiva el bot de un número (crea config con defaults si no existe).

Path params

  • orgIdstringrequerido
  • phoneIdstringrequerido

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/bot/config/00000000-0000-0000-0000-000000000000/toggle' \
  -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"
}