Ir al contenido

Actualizar conexión WhatsApp

PUT
/whatsapp/{id}
curl --request PUT \
--url https://api.matiasimpulso.com/whatsapp/1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "session": "example", "qrcode": "example", "status": "CONNECTING", "battery": "example", "plugged": true, "retries": 1, "number": "example", "greetingMessage": "example", "greetingMediaAttachment": "example", "farewellMessage": "example", "complationMessage": "example", "outOfHoursMessage": "example", "provider": "baileys", "isDefault": true, "allowGroup": true, "token": "example", "facebookUserId": "example", "facebookUserToken": "example", "facebookPageUserId": "example", "tokenMeta": "example", "channel": "whatsapp", "maxUseBotQueues": 1, "timeUseBotQueues": "example", "expiresTicket": 1, "timeSendQueue": 1, "sendIdQueue": 1, "timeInactiveMessage": "example", "inactiveMessage": "example", "ratingMessage": "example", "maxUseBotQueuesNPS": 1, "expiresTicketNPS": "example", "whenExpiresTicket": "example", "expiresInactiveMessage": "example", "groupAsTicket": "enabled", "importOldMessages": "example", "importRecentMessages": "example", "statusImportMessages": "example", "closedTicketsPostImported": true, "importOldMessagesGroups": true, "timeCreateNewTicket": 1, "integrationId": 1, "schedules": [ { "id": 1, "dayOfWeek": 1, "startTime": "example", "endTime": "example", "isActive": true } ], "promptId": 1, "collectiveVacationMessage": "example", "collectiveVacationStart": "example", "collectiveVacationEnd": "example", "queueIdImportMessages": 1, "flowIdNotPhrase": 1, "flowIdWelcome": 1, "queueIds": [ 1 ], "color": "brand", "icon": "ti-message-2", "category": "general", "handlerConfigs": [ { "handlerId": 1, "priority": 1, "executionOrder": 1, "isActive": true, "config": {}, "queueId": 1, "integrationId": 1, "integrationType": "typebot", "webhookUrl": "example", "secret": "example", "timeoutMs": 1, "pauseAi": true, "maxMessagesPerSession": 50, "maxSessionDuration": 1800, "rateLimitPerMinute": 10, "costLimitPerSession": 1, "maxTokensPerMessage": 2000, "maxRetries": 3, "id": 1, "whatsappId": 1, "handlerType": "ai_agent", "triggerType": "on_message_received" } ], "messageTemplates": [ { "templateType": "greeting", "message": "example", "mediaPath": "example", "mediaType": "example", "isActive": true, "id": 1, "whatsappId": 1 } ], "scheduleConfig": { "schedules": { "monday": { "enabled": true, "ranges": [ { "start": "09:00", "end": "18:00" } ] }, "saturday": { "enabled": false, "ranges": [] } }, "holidays": [ "2026-12-25", "2027-01-01" ], "outOfHoursEnabled": true, "outOfHoursAiPolicy": "only_without_ai", "outOfHoursMessage": "example", "afterHoursHandlerType": "example", "collectiveVacationEnabled": true, "collectiveVacationStart": "example", "collectiveVacationEnd": "example", "collectiveVacationMessage": "example", "timezone": "example", "id": 1, "whatsappId": 1, "afterHoursMessage": "example", "createdAt": {}, "updatedAt": {} }, "behaviorConfig": { "allowGroup": false, "groupAsTicket": "disabled", "expiresTicket": 0, "whenExpiresTicket": "", "expiresInactiveMessage": "example", "timeInactiveMessage": "", "timeCreateNewTicket": 1, "maxUseBotQueues": 1, "maxUseBotQueuesNPS": 1, "timeUseBotQueues": "0", "timeSendQueue": 1, "sendIdQueue": 1, "flowIdWelcome": 1, "flowIdNotPhrase": 1, "maxConcurrentChats": 5, "messageRateLimit": 30, "messageRateWindow": 60, "enableAutoReply": false, "autoReplyDelay": 0, "enableReadReceipts": true, "enableTypingIndicator": true, "typingDuration": 3000, "maxRetries": 3, "retryDelay": 5000, "id": 1, "whatsappId": 1 }, "importConfig": { "importRecentMessages": "example", "importOldMessagesGroups": false, "statusImportMessages": "example", "closedTicketsPostImported": false, "queueIdImportMessages": 1, "daysLimitImportMessages": 30, "createContactsOnImport": true, "createTicketsOnImport": false, "id": 1, "whatsappId": 1, "importOldMessages": "example" }, "automationConfig": { "id": {}, "whatsappId": {}, "createdAt": {}, "updatedAt": {}, "inactivityEnabledAt": {}, "welcomeMedia": {}, "welcomeMediaFile": {}, "welcomeMediaMime": {}, "welcomeMediaName": {}, "welcomeMediaSize": {}, "welcomeMediaHash": {}, "welcomeEnabled": true, "welcomeMessage": "example", "welcomeAiPolicy": "skip_if_ai", "welcomeCooldownHours": 1, "acceptGreetingEnabled": true, "acceptGreetingMessage": "example", "farewellEnabled": true, "farewellMessage": "example", "npsEnabled": true, "npsMessage": "example", "npsThanksMessage": "example", "npsExpiryMinutes": 1, "closingOnAutoClose": true, "inactivityEnabled": true, "inactivityScope": "bot", "inactivityWarningMinutes": 1, "inactivityWarningMessage": "example", "inactivityCloseMinutes": 1 } }'

Actualiza la configuración de una conexión WhatsApp existente

id
required
number

ID de la conexión WhatsApp

Media type application/json
object
name
string
<= 255 characters
session
string
qrcode
string
status
string
Allowed values: CONNECTING CONNECTED DISCONNECTED TIMEOUT qrcode
battery
string
plugged
boolean
retries
number
number
string
greetingMessage
string
greetingMediaAttachment
string
farewellMessage
string
complationMessage
string
outOfHoursMessage
string
provider
string
Allowed values: baileys stable beta
isDefault
boolean
allowGroup
boolean
token
string
facebookUserId
string
facebookUserToken
string
facebookPageUserId
string
tokenMeta
string
channel
string
Allowed values: whatsapp facebook instagram
maxUseBotQueues
number
timeUseBotQueues
string
expiresTicket
number
timeSendQueue
number
sendIdQueue
number
timeInactiveMessage
string
inactiveMessage
string
ratingMessage
string
maxUseBotQueuesNPS
number
expiresTicketNPS
string
whenExpiresTicket
string
expiresInactiveMessage
string
groupAsTicket
string
Allowed values: enabled disabled
importOldMessages
string
importRecentMessages
string
statusImportMessages
string
closedTicketsPostImported
boolean
importOldMessagesGroups
boolean
timeCreateNewTicket
number
integrationId
number
schedules
Array<object>
object
id

ID del horario existente; null o ausente si es nuevo

number
nullable
dayOfWeek
required
number
<= 6
startTime
required
string
endTime
required
string
isActive
boolean
promptId
number
collectiveVacationMessage
string
collectiveVacationStart
string
collectiveVacationEnd
string
queueIdImportMessages
number
flowIdNotPhrase
number
flowIdWelcome
number
queueIds
Array<number>
color
string
<= 20 characters
Allowed values: brand blue green purple orange pink cyan red yellow indigo teal slate emerald
icon
string
<= 50 characters
Allowed values: ti-message-2 ti-shopping-cart ti-headset ti-credit-card ti-hand-stop ti-info-circle ti-calendar-event ti-truck-delivery ti-refresh ti-star ti-speakerphone ti-alert-triangle ti-dots ti-brand-whatsapp
category
string
<= 50 characters
Allowed values: general sales support billing welcome information appointment delivery followup feedback promotional emergency other
handlerConfigs
Array<object>
object
handlerId

ID del handler específico (agentId, flowId, etc.)

number
priority
required

Prioridad de ejecución (1 = primero)

number
default: 1 >= 1 <= 100
executionOrder
required

Orden de ejecución dentro de misma prioridad

number
default: 1 >= 1
isActive
required

Handler activo

boolean
default: true
config

Configuración personalizada del handler (JSON)

object
key
additional properties
any
queueId

ID de cola (si handlerType = queue)

number
integrationId

ID de integración (si handlerType = integration)

number
integrationType

Tipo de integración externa (si handlerType = integration)

string
Allowed values: typebot n8n make zapier custom
webhookUrl

URL HTTPS del webhook externo (si handlerType = integration)

string
secret

Secreto de firma HMAC write-only (si handlerType = integration)

string
nullable
timeoutMs

Timeout en milisegundos para la integración externa

number
pauseAi

Pausar IA mientras responde la integración externa

boolean
maxMessagesPerSession

Máximo de mensajes por sesión antes de escalar

number
default: 50 >= 1 <= 1000
maxSessionDuration

Duración máxima de sesión en segundos (30 min default)

number
default: 1800 >= 60 <= 86400
rateLimitPerMinute

Máximo de mensajes por minuto por usuario

number
default: 10 >= 1 <= 100
costLimitPerSession

Límite de costo en USD por sesión (para IA)

number
default: 1
maxTokensPerMessage

Máximo de tokens por mensaje (para IA)

number
default: 2000 >= 100 <= 10000
maxRetries

Máximo de reintentos ante error

number
default: 3 <= 10
id

ID del handler existente (solo al editar)

number
whatsappId

Ignorado: la conexión sale del path (PUT) o del registro recién creado (POST)

number
handlerType
required

Tipo de handler. Acepta también los alias de wchat (AI_AGENT, AI_ROUTER, FLOW, INTEGRATION)

string
Allowed values: ai_agent ai_router flow integration
triggerType
required

Trigger. Acepta también el alias de wchat NEW_MESSAGE

string
default: on_message_received
Allowed values: on_message_received on_ticket_created on_keyword_detected on_schedule on_manual
messageTemplates
Array<object>
object
templateType
required

Tipo de plantilla

string
<= 50 characters
Allowed values: greeting farewell out_of_hours inactive queue_transfer escalation error rating
message
required

Contenido del mensaje

string
mediaPath

Ruta del archivo de media

string
<= 500 characters
mediaType

Tipo de media (image, video, audio, document)

string
<= 50 characters
isActive
required

Plantilla activa

boolean
default: true
id

ID de la plantilla existente (solo al editar)

number
whatsappId

Ignorado: la conexión sale del path (PUT) o del registro recién creado (POST)

number
scheduleConfig
object
schedules

Horarios por día: hasta 4 tramos HH:MM con fin posterior al inicio (sin cruzar la medianoche)

object
key
additional properties
any

Example

{
"monday": {
"enabled": true,
"ranges": [
{
"start": "09:00",
"end": "18:00"
}
]
},
"saturday": {
"enabled": false,
"ranges": []
}
}
holidays

Días festivos (YYYY-MM-DD, máximo 60)

Array<string>

Example

[
"2026-12-25",
"2027-01-01"
]
outOfHoursEnabled

Responder fuera de horario (apagado por defecto)

boolean
outOfHoursAiPolicy

Qué hacer si atiende un agente IA

string
Allowed values: only_without_ai before_ai instead_of_ai
outOfHoursMessage

Mensaje fuera de horario (variables de chat)

string
nullable <= 1000 characters
afterHoursHandlerType

Ignorado (campo heredado de wchat)

string
<= 50 characters
collectiveVacationEnabled

Vacaciones colectivas activas

boolean
collectiveVacationStart

Inicio de vacaciones colectivas (YYYY-MM-DD)

string
nullable
collectiveVacationEnd

Fin de vacaciones colectivas (YYYY-MM-DD)

string
nullable
collectiveVacationMessage

Mensaje durante vacaciones colectivas

string
nullable <= 1000 characters
timezone

Zona horaria IANA. Al crear sin ella se usa la del país de la empresa

string
<= 50 characters
id

Ignorado: la configuración es 1:1 con la conexión

number
whatsappId

Ignorado: la conexión sale del path (PUT) o del registro recién creado (POST)

number
afterHoursMessage

Alias de wchat de outOfHoursMessage (se guarda en outOfHoursMessage)

string
nullable <= 1000 characters
createdAt

Ignorado: lo fija el servidor

object
updatedAt

Ignorado: lo fija el servidor

object
behaviorConfig
object
allowGroup
required

Permitir grupos

boolean
groupAsTicket
required

Modo de manejo de grupos

string
default: disabled <= 255 characters
Allowed values: disabled enabled optional
expiresTicket

Tiempo de expiración de ticket en minutos

number
0
whenExpiresTicket

Qué hacer cuando expira el ticket

string
"" <= 255 characters
expiresInactiveMessage

Mensaje de expiración por inactividad

string
timeInactiveMessage

Tiempo para mensaje de inactividad

string
"" <= 255 characters
timeCreateNewTicket

Minutos tras los que un mensaje ya no reabre la conversación cerrada (0-10080, 7 días)

number
<= 10080
maxUseBotQueues

Máximo uso de bot en colas

number
maxUseBotQueuesNPS

Máximo uso de bot en colas NPS

number
timeUseBotQueues

Tiempo de uso de bot en colas

string
default: 0 <= 255 characters
timeSendQueue

Tiempo para enviar a cola

number
sendIdQueue

ID de cola para envío

number
flowIdWelcome

ID de flow de bienvenida

number
flowIdNotPhrase

ID de flow cuando no hay frase reconocida

number
maxConcurrentChats

Máximo de chats concurrentes

number
default: 5 >= 1
messageRateLimit

Límite de mensajes por ventana de tiempo

number
default: 30 >= 1
messageRateWindow

Ventana de tiempo para límite de mensajes (segundos)

number
default: 60 >= 1
enableAutoReply

Habilitar respuesta automática

boolean
autoReplyDelay

Retraso para respuesta automática (ms)

number
0
enableReadReceipts

Habilitar confirmaciones de lectura

boolean
default: true
enableTypingIndicator

Habilitar indicador de escritura

boolean
default: true
typingDuration

Duración del indicador de escritura (ms)

number
default: 3000
maxRetries

Máximo de reintentos ante error

number
default: 3
retryDelay

Retraso entre reintentos (ms)

number
default: 5000
id

Ignorado: la configuración es 1:1 con la conexión

number
whatsappId

Ignorado: la conexión sale del path (PUT) o del registro recién creado (POST)

number
importConfig
object
importRecentMessages

Importar mensajes recientes

string
<= 255 characters
importOldMessagesGroups

Importar mensajes antiguos de grupos

boolean
statusImportMessages

Estado de importación de mensajes

string
<= 255 characters
closedTicketsPostImported

Cerrar tickets después de importar

boolean
queueIdImportMessages

ID de cola para mensajes importados

number
daysLimitImportMessages

Límite de días para importar mensajes antiguos

number
default: 30 >= 1
createContactsOnImport

Crear contactos automáticamente durante la importación

boolean
default: true
createTicketsOnImport

Crear tickets automáticamente durante la importación

boolean
id

Ignorado: la configuración es 1:1 con la conexión

number
whatsappId

Ignorado: la conexión sale del path (PUT) o del registro recién creado (POST)

number
importOldMessages

Importar mensajes antiguos: ‘enabled’ o boolean (true → ‘enabled’, false → desactivado)

string
nullable
automationConfig
object
id

Ignorado: lo fija el servidor

object
whatsappId

Ignorado: lo fija el servidor

object
createdAt

Ignorado: lo fija el servidor

object
updatedAt

Ignorado: lo fija el servidor

object
inactivityEnabledAt

Ignorado: lo fija el servidor al activar la inactividad

object
welcomeMedia

Ignorado: se sube con POST /whatsapp/:id/automation/welcome-media

object
welcomeMediaFile

Ignorado: lo fija el servidor

object
welcomeMediaMime

Ignorado: lo fija el servidor

object
welcomeMediaName

Ignorado: lo fija el servidor

object
welcomeMediaSize

Ignorado: lo fija el servidor

object
welcomeMediaHash

Ignorado: lo fija el servidor

object
welcomeEnabled

Bienvenida en cada conversación nueva del cliente

boolean
welcomeMessage

Texto de bienvenida (variables de chat)

string
nullable <= 1000 characters
welcomeAiPolicy
string
Allowed values: skip_if_ai always
welcomeCooldownHours
number
<= 720
acceptGreetingEnabled
boolean
acceptGreetingMessage
string
nullable <= 1000 characters
farewellEnabled
boolean
farewellMessage
string
nullable <= 1000 characters
npsEnabled
boolean
npsMessage
string
nullable <= 1000 characters
npsThanksMessage
string
nullable <= 500 characters
npsExpiryMinutes
number
>= 5 <= 1440
closingOnAutoClose

Despedida y NPS también en los cierres automáticos

boolean
inactivityEnabled
boolean
inactivityScope
string
Allowed values: bot human all
inactivityWarningMinutes

Null = cerrar sin aviso

number
nullable >= 5 <= 10080
inactivityWarningMessage
string
nullable <= 1000 characters
inactivityCloseMinutes
number
>= 5 <= 10080

Conexión actualizada exitosamente

Conexión no encontrada