API & WEBHOOK

Aprenda a integrar via API WEBHOOK URL na Smart 2.0 Simplesdesk

Configuração de envio API

Aqui serå apresentado o uso do PUSH na Simplesdesk Smart 2.0 Efetue o login na plataforma Simplesdesk > ConfiguraçÔes > API/WEBHOOK

PUSH: Esta função permite o envio de mensagens via API Cada envio, abrirå um novo ticket na fila de pendente, se não houver um ticket aberto para o contato na conexão(canal) escolhido para envio a ação após o envio permitirå fechar automaticamente ou manter o ticket aberto. A URL e o token podem ser gerados na plataforma. Para utilizar a URL (endpoint), basta clicar em ADICIONAR para criar a configuração para a API e preencher os campos de dados API (PUSH) como mostramos nas imagens abaixo

Campos para preenchimento

Nome da API: descrição do sistema externo

Enviar por: nome do canal do WhatsApp por onde as mensagens vĂŁo ser enviadas para o WhatsApp dos clientes.

Ação no atendimento após o envio:

  • Fechar: manter na aba de fechados apĂłs o envio

  • Manter aberto: ficar na aba de pendentes sem departamento vinculado Redirecionar para fila: ficar na aba de pendentes com um departamento vinculado

  • Redirecionar para usuĂĄrio: enviar para a aba de ativos de um atendente

Ação no atendimento após o envio: essas açÔes só vão funcionar quando o cliente estiver na aba de fechados no atendimento ou se o contato do cliente estiver chegando pela primeira vez na plataforma. Se o cliente estiver na aba de pendentes ou na aba de ativos e for disparada uma mensagem ele vai permanecer no mesmo local, apenas receberå a mensagem do sistema externo.

MetĂłdo POST:

// Metodo post
https://URL_COPIADA_COM_TOKEN

Headers

Key
Value

Content-Type

application/json

Exemplo de requisição

Para enviar apenas texto ao usuĂĄrio

{
   "body: "MENSAGEM", //Mensagem de texto
   "number": "5511946431198", //Celular com DDI e DDD
   "externalKey": "123456", //Valor obrigatĂłrio para possibilitar o rastreamento da mensagem
}

Para enviar imagens, vĂ­deo, ĂĄudio ou documentos gerais

{
   "number":"5511946431198", //Celular com DDI e DDD
   "externalKey":"123456", //Valor obrigatĂłrio para possibilitar o rastreamento da mensagem
   "body":"", //Mensagem de texto que serĂĄ enviada como legenda/caption. Para nĂŁo enviar deixe em branco
   "mediaUrl":"https://exemplo.com/img.png" //url da mĂ­dia > vĂ­deo, imagem, ĂĄudio, documentos gerais

A mensagem Ă© inicialmente adicionada em uma fila para a mensagem ser processada sequencialmente

{
   "message": "Message add queue"   
}   

O JSON padrão e completo para o body da requisição por WhatsApp Business:

{
  "number": "5511946431198", //nĂșmero do WhatsApp do cliente (obrigatĂłrio!!!)
  "body": "seu texto aqui", //texto a ser enviado para o cliente (obrigatĂłrio!!!)
  "externalKey": "123456", //para possibilitar o rastreamento da mensagem (obrigatĂłrio!!!)
  "mediaUrl": "https://", //link de mĂ­dia. O sistema converte para arquivo e envia
  "userId": 183, //id do atendente
  "onlyNote": true, // Caso deseje enviar somente a nota interna, sem mensagem.
  "forceTicketToUser": true, // forçar ticket  para usuårio (deve ser usado junto de userId)
  "forceTicketToDepartment": true, /* deve ser utilizado junto Ă  chave queueId, se
o cliente estiver na aba de fechados ou ativos, ele vai para a aba de pendetes.
Conseguimos alternar ou adicionar o departamento ao ticket. Pode ser usado em
consjunto com as chaves forceTicketToUser e userId, forçando um ticket para um
departamento e movendo para os ativos de um atendente*/
  "queueId": "435", //id do departamento
  "forceTicketToClosed": true, /* força ticket para aba de fechado. Pode ser usado
só ou em cojunto com um motivo de fechamento através do parùmetro closingReasonId*/
  "closingReasonId": 123 // id do motivo de fechamento
  "note": { //disparar nota interna (visĂ­vel apenas para o atendente)
    "body": "seu texto aqui", //texto da nota interna
    "mediaUrl": "https://" // link da mĂ­dia para nota interna
  }
}

API Oficial do WhasApp (WABA):

A url autenticada vocĂȘ vai encontrar no mesmo local, sĂł que agora no item "Enviar por", vocĂȘ vai adicionar uma canal com API oficial e o body a ser utilizado serĂĄ esse:

{
  "number": "5511946431198", //nĂșmero do cliente
  "templateId": "uuid-template", //hsmId
  "params": ["variavel1", "variavel2"], //caso o template tenha variĂĄveis
  "externalKey": "valor para rastreamento",
  "userId": 123, //id do atendente
  "onlyNote": true, // Caso deseje enviar somente a nota interna, sem mensagem.
  "forceTicketToUser": true, // forçar ticket  para usuårio
  "forceTicketToDepartment": true, /* deve ser utilizado junto Ă  chave queueId, se
o cliente estiver na aba de fechados ou ativos, ele vai para a aba de pendetes.
Conseguimos alternar ou adicionar o departamento ao ticket. Pode ser usado em
consjunto com as chaves forceTicketToUser e userId, forçando um ticket para um
departamento e movendo para os ativos de um atendente*/
  "queueId": "435", //id do departamento
  "forceTicketToClosed": true, /* força ticket para aba de fechado. Pode ser usado
só ou em cojunto com um motivo de fechamento através do parùmetro closingReasonId*/
  "closingReasonId": 123 // id do motivo de fechamento
  "note": { //disparar nota interna (visĂ­vel apenas para o atendente)
    "body": "seu texto aqui", //texto da nota interna
    "mediaUrl": "https://" // link da mĂ­dia para nota interna
  }
}

Como encontro o hsmId?

Os itens obrigatĂłrios para qualquer dos exemplos sempre serĂŁo o number, o body e o externalKey.

forceTicketToClosed possui precedĂȘncia sobre todos os outros parĂąmetros, o que forçarĂĄ a mudança do ticket para fechado, mesmo que o ticket nĂŁo tenha como origem da criação via API.

Caso forceTicketToUser seja utilizado com forceTicketToDepartment, garanta que o usuĂĄrio informado possua acesso ao departamento informado.

O Id do departamento (queueId) é encontrado em ConfiguraçÔes -> Departamentos

O Id do Motivo de Fechamento (closingReasonId) é encontrado em ConfiguraçÔes -> Motivos de fechamento

ConfiguraçÔes do Webhook

Aqui serå apresentado os demais usos do WEBHOOK na Simplesdesk Smart 2.0, como eventos, payloads e logs. Efetue o login na plataforma Simplesdesk > ConfiguraçÔes > API/WEBHOOK

Esta função permite o envio de dados do contato/atendimento a partir de um determinado evento (gatilho) que ocorre na plataforma

DĂșvidas sobre o payload? Clique no Ă­cone de "?" para obter um exemplo de Payload para cada evento disponĂ­vel

LOGS

É possível fazer uma pesquisa pelos logs de requisição para API (PUSH) ou envio de dados para o Webhook

Detalhe do evento Webhook URL:

Campo
Descrição

#

Id de identificação da requisição

Nome

Nome da Api

Evento

Nome do evento na plataforma

Tipo

Webhook ou API (Push)

Status

Falha ou sucesso (200)

Data

Data e hora da requisição

Ação

Detalhe do evento

Envio: Payload / Header

Retorno: Status / Body / Header

  //Payload
{
  "contact": {
  "id": 4200,
  "name": "Christopher Zagato",
  "number": "5511946431198",
  "email": "[email protected]",
  "profilePicUrl": null,
  "tags": [
    "Proposta"
    ],
    "extrainfo": [],
    "leadStatus": {
    "id": 6,
    "status": "Quente",
    }

}

//Header
{
   "Accept": "application/json, text/plain, */*,
   "Content-Type": "application/json,
   "User-Agent": "axios/0.21.4",
}

Contato criado

// ("event": "NewContact")

{
  "contact": {
    "id": 17256,
    "name": "Nome do Contato",
    "number": "559999009900",
    "email": "",
    "profilePicUrl": "https://pps.whatsapp.net/v/...",
    "tags": [
      "Cliente",
      "OutraTag"
    ],
    "extraInfo": [],
    "leadStatus": {
      "id": 2,
      "status": "Em atendimento ",
      "color": "#0000d6",
      "active": true,
      "createdAt": "2023-03-20T17:31:12.723Z",
      "updatedAt": "2023-03-20T17:31:12.723Z"
    }
  },
  "userId": 1,
  "tenantId": 1,
  "wallets": [
    {
      "id": 1,
      "name": "Administrador",
      "ContactWallet": {
        "id": 44,
        "contactId": 17256,
        "walletId": 1,
        "tenantId": 1,
        "createdAt": "2023-06-05T12:07:48.557Z",
        "updatedAt": "2023-06-05T12:07:48.557Z"
      }
    }
  ],
  "tenantId": 1,
  "event": "NewContact"
}

Atendimento iniciado ("event":"StartedTicket")

{
  "ticket": {
    "id": 9902,
    "status": "open",
    "unreadMessages": 0,
    "lastMessage": "Aguarde, logo vocĂȘ serĂĄ atendido.\\nNosso atendimento atendimento Ă© de Segunda a Sexta",
    "channel": "whatsapp",
    "answered": true,
    "isGroup": false,
    "isActiveDemand": false,
    "isCreatedAtAPI": false,
    "lastInteractionBot": "2023-06-05T12:06:38.486Z",
    "botRetries": 0,
    "closedAt": null,
    "lastMessageAt": "1685966800307",
    "startedAttendanceAt": 1685966800307,
    "userId": 1,
    "contactId": 17256,
    "whatsappId": 1,
    "autoReplyId": null,
    "setUpAutoReplyId": null,
    "chatFlowId": null,
    "stepChatFlow": null,
    "queuedId": 2,
    "closingReasonId": null,
    "tenantId": 1,
    "apiConfigId": null,
    "createdAt": "2023-06-01T13:25:05.089Z",
    "updatedAt": "2023-06-05T12:07:09.586Z",
    "contact": {
      "id": 17256,
      "name": "Nome do contato",
      "number": "559999009900",
      "email": "",
      "profilePicUrl": "https://pps.whatsapp.net/v.../",
      "pushname": "Nome do contato",
      "observations": null,
      "telegramId": null,
      "messengerId": null,
      "instagramPK": null,
      "isUser": true,
      "isWAContact": true,
      "isGroup": false,
      "leadStatusId": null,
      "tenantId": 1,
      "customFields": {
        "cpf": "12312312311"
      },
      "tags": [],
      "createdAt": "2023-05-21T21:15:15.480Z",
      "updatedAt": "2023-06-05T12:06:24.474Z",
      "extraInfo": [],
      "leadStatus": null,
      "wallets": []
    },
    "user": null,
    "tenantId": 1,
    "event": "StartedTicket"
  }
}

Atendimento transferido ("event":"TransferOfTicket")

{
  "ticket": {
    "id": 9902,
    "status": "open",
    "unreadMessages": 0,
    "lastMessage": "Aguarde, logo vocĂȘ serĂĄ atendido.\\nNosso atendimento atendimento Ă© de Segunda a Sexta",
    "channel": "whatsapp",
    "answered": true,
    "isGroup": false,
    "isActiveDemand": false,
    "isCreatedAtAPI": false,
    "lastInteractionBot": "2023-06-05T12:06:38.486Z",
    "botRetries": 0,
    "closedAt": null,
    "lastMessageAt": "1685966800307",
    "startedAttendanceAt": 1685966829586,
    "userId": 1,
    "contactId": 17256,
    "whatsappId": 1,
    "autoReplyId": null,
    "stepAutoReplyId": null,
    "chatFlowId": null,
    "stepChatFlow": null,
    "queuedId": 2,
    "closingReasonId": null,
    "tenantId": 1,
    "apiConfigId": null,
    "createdAt": "2023-06-01T13:25:05.089Z",
    "updatedAt": "2023-06-05T12:07:09.586Z",
    "contact": {
      "id": 17256,
      "name": "Nome do contato",
      "number": "559999099900",
      "email": "",
      "profilePicUrl": "https://pps.whatsapp.net/v/.../",
      "pushname": "Nome do contato",
      "observations": null,
      "telegramId": null,
      "messengerId": null,
      "instagramPK": null,
      "isUser": true,
      "isWAContact": true,
      "isGroup": false,
      "leadStatusId": null,
      "tenantId": 1,
      "customFields": {
        "cpf": "12312312311"
      },
      "tags": [],
      "createdAt": "2023-05-21T21:15:15.480Z",
      "updatedAt": "2023-06-05T12:06:24.474Z",
      "extraInfo": [],
      "leadStatus": null,
      "wallets": []
    },
    "user": null
  },
  "tenantId": 1,
  "event": "TransferOfTicket"
}

Atualização da conexão ("event":"ConnectionStatusUpdate")

{
  "connection": {
    "UrlWabaWebHook": "",
    "UrlMessengerWebHook": "",
    "id": 1,
    "name": "Linha 2",
    "qrcode": "",
    "status": "CONNECTED",
    "battery": "20",
    "plugged": false,
    "isActive": true,
    "isRejectCall": true,
    "callRejectedMessage": null,
    "isDeleted": false,
    "retries": 0,
    "isDefault": true,
    "instagramUser": null,
    "fbPageId": null,
    "type": "whatsapp",
    "number": "5599999999999",
    "phone": {},
    "tenantId": 1,
    "createdAt": "2021-03-12T02:23:17.000Z",
    "updatedAt": "2023-06-05T12:46:57.643Z",
    "chatFlowId": 1,
    "defaultQueueId": 6
  },
  "tenantId": 1,
  "event": "ConnectionStatusUpdate"
}

Contato atualizado ("event":"UpdateContact")

{
  "contact": {
    "id": 17256,
    "name": "Nome do Contato",
    "number": "559999099900",
    "email": "",
    "profilePicUrl": "https://pps.whatsapp.net/v/...",
    "tags": [
      "Cliente",
      "OutraTag"
    ],
    "extraInfo": [],
    "leadStatus": {
      "id": 2,
      "status": "Em atendimento",
      "color": "#0000d6",
      "active": true,
      "createdAt": "2023-03-20T17:31:12.723Z",
      "updatedAt": "2023-03-20T17:31:12.723Z",
      "userId": 1,
      "tenantId": 1
    },
    "wallets": [
      {
        "id": 1,
        "name": "Administrador",
        "ContactWallet": {
          "id": 44,
          "contactId": 17256,
          "walletId": 1,
          "tenantId": 1,
          "createdAt": "2023-06-05T12:07:48.557Z",
          "updatedAt": "2023-06-05T12:07:48.557Z"
        }
      }
    ]
  },
  "tenantId": 1,
  "event": "UpdateContact"
}

Atendimento finalizado ("event":"FinishedTicket")

{
  "ticket": {
    "id": 9902,
    "status": "open",
    "unreadMessages": 0,
    "lastMessage": "Aguarde, logo vocĂȘ serĂĄ atendido.\\nNosso atendimento atendimento Ă© de Segunda a Sexta",
    "channel": "whatsapp",
    "answered": true,
    "isGroup": false,
    "isActiveDemand": false,
    "isCreatedAtAPI": false,
    "lastInteractionBot": "2023-06-05T12:06:38.486Z",
    "botRetries": 0,
    "closedAt": null,
    "lastMessageAt": "1685966800307",
    "startedAttendanceAt": 1685966829586,
    "userId": 1,
    "contactId": 17256,
    "whatsappId": 1,
    "autoReplyId": null,
    "stepAutoReplyId": null,
    "chatFlowId": null,
    "stepChatFlow": null,
    "queuedId": 2,
    "closingReasonId": null,
    "tenantId": 1,
    "apiConfigId": null,
    "createdAt": "2023-06-01T13:25:05.089Z",
    "updatedAt": "2023-06-05T12:07:09.586Z",
    "contact": {
      "id": 17256,
      "name": "Nome do contato",
      "number": "559999099900",
      "email": "",
      "profilePicUrl": "https://pps.whatsapp.net/v/...",
      "pushname": "Nome do contato",
      "observations": null,
      "telegramId": null,
      "messengerId": null,
      "instagramPK": null,
      "isUser": true,
      "isWAContact": true,
      "isGroup": false,
      "leadStatusId": null,
      "tenantId": 1,
      "customFields": {
        "cpf": "12312312311"
      },
      "tags": [],
      "createdAt": "2023-05-21T21:15:15.480Z",
      "updatedAt": "2023-06-05T12:06:24.474Z",
      "extraInfo": [],
      "leadStatus": null,
      "wallets": []
    },
    "user": null
  },
  "tenantId": 1,
  "event": "FinishedTicket"
}

Mensagem criada ("event":"NewMessage")

{
  "message": {
    "mediaName": null,
    "mediaUrl": null,
    "msgCreatedAt": "2023-06-05T12:06:40.000Z",
    "id": "e3b501ba-91ab-4066-a8da-3b67da787f4e",
    "wabaMediaId": null,
    "isDeleted": false,
    "userId": null,
    "scheduleDate": null,
    "ticketId": 9902,
    "body": "Aguarde, logo vocĂȘ serĂĄ atendido.\\nNosso atendimento atendimento Ă© de Segunda a Sexta das 08h",
    "contactId": 17256,
    "fromMe": true,
    "read": true,
    "mediaType": "chat",
    "timestamp": "1685966800",
    "quotedMsgId": null,
    "sendType": "bot",
    "tenantId": 1,
    "note": false,
    "isTransfer": false,
    "status": "sent",
    "ack": 0,
    "messageId": "3E8073CACCBDF2B747D45E",
    "updatedAt": "2023-06-05T12:06:40.079Z",
    "createdAt": "2023-06-05T12:06:40.079Z",
    "idFront": null
  },
  "tenantId": 1,
  "event": "NewMessage"
}

Atendimento atualizado ("event":"UpdateOnTicket")

{
  "ticket": {
    "id": 9902,
    "status": "open",
    "unreadMessages": 0,
    "lastMessage": "Aguarde, logo vocĂȘ serĂĄ atendido.\\nNosso atendimento atendimento Ă© de Segunda a Sexta",
    "channel": "whatsapp",
    "answered": true,
    "isGroup": false,
    "isActiveDemand": false,
    "isCreatedAtAPI": false,
    "lastInteractionBot": "2023-06-05T12:06:38.486Z",
    "botRetries": 0,
    "closedAt": null,
    "lastMessageAt": "1685966800307",
    "startedAttendanceAt": 1685966829586,
    "userId": 1,
    "contactId": 17256,
    "whatsappId": 1,
    "autoReplyId": null,
    "stepAutoReplyId": null,
    "chatFlowId": null,
    "stepChatFlow": null,
    "queuedId": 2,
    "closingReasonId": null,
    "tenantId": 1,
    "apiConfigId": null,
    "createdAt": "2023-06-01T13:25:05.089Z",
    "updatedAt": "2023-06-05T12:07:09.586Z",
    "contact": {
      "id": 17256,
      "name": "Nome do contato",
      "number": "559999099900",
      "email": "",
      "profilePicUrl": "https://pps.whatsapp.net/v/...",
      "pushname": "Nome do contato",
      "observations": null,
      "telegramId": null,
      "messengerId": null,
      "instagramPK": null,
      "isUser": true,
      "isWAContact": true,
      "isGroup": false,
      "leadStatusId": null,
      "tenantId": 1,
      "customFields": {
        "cpf": "12312312311"
      },
      "tags": [],
      "createdAt": "2023-05-21T21:15:15.480Z",
      "updatedAt": "2023-06-05T12:06:24.474Z",
      "extraInfo": [],
      "leadStatus": null,
      "wallets": []
    },
    "user": null
  },
  "tenantId": 1,
  "event": "UpdateOnTicket"
}

Novo atendimento ("event":"NewTicket")

{
  "ticket": {
    "id": 9902,
    "status": "open",
    "unreadMessages": 0,
    "lastMessage": "Aguarde, logo vocĂȘ serĂĄ atendido.\\nNosso atendimento atendimento Ă© de Segunda a Sexta",
    "channel": "whatsapp",
    "answered": true,
    "isGroup": false,
    "isActiveDemand": false,
    "isCreatedAtAPI": false,
    "lastInteractionBot": "2023-06-05T12:06:38.486Z",
    "botRetries": 0,
    "closedAt": null,
    "lastMessageAt": "1685966800307",
    "startedAttendanceAt": 1685966829586,
    "userId": 1,
    "contactId": 17256,
    "whatsappId": 1,
    "autoReplyId": null,
    "stepAutoReplyId": null,
    "chatFlowId": null,
    "stepChatFlow": null,
    "queuedId": 2,
    "closingReasonId": null,
    "tenantId": 1,
    "apiConfigId": null,
    "createdAt": "2023-06-01T13:25:05.089Z",
    "updatedAt": "2023-06-05T12:07:09.586Z",
    "contact": {
      "id": 17256,
      "name": "Nome do contato",
      "number": "559999099900",
      "email": "",
      "profilePicUrl": "https://pps.whatsapp.net/v/...",
      "pushname": "Nome do contato",
      "observations": null,
      "telegramId": null,
      "messengerId": null,
      "instagramPK": null,
      "isUser": true,
      "isWAContact": true,
      "isGroup": false,
      "leadStatusId": null,
      "tenantId": 1,
      "customFields": {
        "cpf": "12312312311"
      },
      "tags": [],
      "createdAt": "2023-05-21T21:15:15.480Z",
      "updatedAt": "2023-06-05T12:06:24.474Z",
      "extraInfo": [],
      "leadStatus": null,
      "wallets": []
    },
    "user": null
  },
  "tenantId": 1,
  "event": "NewTicket"
}

Status da mensagem ("event":"AckMessage")

{
  "ack": 2,
  "id": "a9985ce6-671a-4de9-b7a0-ce4791fdd95fc",
  "messageId": "3EBD81AFDAE68EAFBBC2F2",
  "ticketId": 9902,
  "tenantId": 1,
  "event": "AckMessage"
}

Caso tenha alguma dĂșvida, Ă© sĂł chamar nosso time de suporte da Simplesdesk. Ou, se preferir, chame atravĂ©s do nosso WhatsApp. 😉

Last updated