API para ações de mensagens

Envio de mensagem

Esses padrões devem ser utilizados quando for necessário enviar mensagens automaticamente através da API do sistema.

Um exemplo prático é quando um cliente preenche um formulário, e você deseja que o sistema dispare automaticamente uma mensagem para esse cliente, seja para confirmar o recebimento, agradecer o contato ou iniciar um atendimento.

📌 Exemplo prático com CRM:

Imagine que você utiliza um CRM para gerenciar seus contatos e leads. Quando um contato avança para uma nova etapa do funil de vendas (como “Proposta enviada” ou “Pré-venda concluída”), você pode configurar o sistema para que, ao atingir essa etapa, seja feita automaticamente uma requisição para a API de mensagens, enviando um WhatsApp com uma mensagem personalizada para o cliente, como:

"Olá, [Nome]! Sua proposta já foi enviada. Em breve, um de nossos consultores entrará em contato para tirar suas dúvidas."

Veja a seguir como usar cada endpoint.




📌API Digitando…

API: Baileys

Altera o status para Digitando… por um tempo definido.

Verifique aqui os Pré-Requisitos para utilizar APIs


Endpoint


https://https://api.gpconnect.com.br/api/messages/isTyping



Método


POST


Autenticação


Bearer {seutokenaqui}


Payload

{

  "number": "5511999999999",

  "tempo": 5000,

}


📖
 “number”: telefone do destinatário no formato ddi ddd numero (somente números)

 

“tempo”: somente número (1000 corresponde a 1 segundo)








📌 API Gravando…


API: Baileys

Altera o status para Gravando… por um tempo definido.

Verifique aqui os Pré-Requisitos para utilizar APIs



Endpoint


https://https://api.gpconnect.com.br/api/messages/isRecording


Método


POST


Autenticação


Bearer {seutokenaqui}


Payload

{

  "number": "5511999999999",

  "tempo": 5000,

}



 “number”: telefone do destinatário no formato ddi ddd numero (somente números)

 

➡ “tempo”: somente número (1000 corresponde a 1 segundo)









📌 API Mensagem de Texto

API: Baileys

Envia uma mensagem de texto, com opções de abrir um ticket e/ou atribuir a conversa à uma fila.

Verifique aqui os Pré-Requisitos para utilizar APIs



Endpoint


https://https://api.gpconnect.com.br/api/messages/send


Método


POST


Autenticação


Bearer {seutokenaqui}


Payload

{

  "number": "5511999999999",

  "openTicket": "1",

  "queueId": "16",

  "body": "Bem vindo Lead"

}


“number”: telefone do destinatário no formato ddi ddd numero (somente números)

 

➡“openTicket”:

  • “0” Não abre ticket

  • “1” Abre Ticket

– Atenção: para abrir ticket é obrigatório definir uma fila.
Se o ticket estiver:
– fechado = abre no aguardando
– aberto (aguardando) = mantem no aguardando
– aberto (em atendimento) sem fila = mantem no atendimento
– aberto (em atendimento) com fila = volta para o aguardando na fila nova

➡ “queueId”: ID da fila desejada ( Só funciona o “openTicket”: “1” )

“body”: Mensagem



Retorno de API (Payload de Resposta)

Exemplo de retorno do envio de mensagem sem abrir ticket:

{ 
  "mensagem": "Mensagem enviada SEM TICKET", 
  "ticket": null 
}


Exemplo de retorno do envio de mensagem abrindo ticket:

{

  "mensagem": "Mensagem enviada",

  "ticket": {

    "id": 20122,

    "status": "pending",

    "unreadMessages": 1,

    "lastMessage": "Enviei esse texto por último",

    "protocolo": "28239",

    "typebot_sessionId": null,

    "typebot_status": null,

    "customA": null,

    "lastFlowId": null,

    "repeatCount": null,

    "fromAds": 24,

    "customB": null,

    "nextFlowId": null,

    "isGroup": false,

    "userId": null,

    "contactId": 14675,

    "whatsappId": 1,

    "queueId": 15,

    "chatbot": false,

    "isMenu": false,

    "variables": null,

    "channel": "whatsapp",

    "queueOptionId": null,

    "companyId": 1,

    "uuid": "5abc7180-de45-4980-9423-c67377737681",

    "promptId": null,

    "createdAt": "2025-02-28 T11:46:45.118Z",

    "updatedAt": "2025-02-28 T11:46:45.349Z",

    "contact": {

      "id": 14675,

      "name": "João da Silva",

      "number": "5511999999999",

      "email": "",

      "profilePicUrl": "https://pps.whatsapp.net/v/t61.24694-24/488_6855805790520267314_n.jpg?stp=dst-jpg_s96x96_tt6&ccb=11-4&oh=01_Q5AaIJyx3-GwiAAnKi52RrELCld2&oe=67CA22FA&_nc_sid=5e03e0&_nc_cat=123",

      "acceptAudioMessage": true,

      "active": true,

      "disableBot": false,

      "extraInfo": []

    },

    "user": {

      "id": 1,

      "name": "Jonas",

      "restricted": false,

      "away": false,

      "ausencia": null,

      "sigame": false,

      "number": "5511888888888"

    },

    "queue": {

      "id": 15,

      "name": "Financeiro",

      "color": "#999999",

      "typeboturl": "",

      "typebotname": "",

      "typebotexpire": 5000,

      "typebotwait": 1500,

      "flowiseKey": "",

      "flowiseUrl": "",

      "promptId": null,

      "invalidMessage": "",

      "flowId": null,

      "zaiaToken": "",

      "zaiaAgent": null,

      "isTranscribe": false,

      "difyToken": null,

      "difyURL": null,

      "prompt": null

    },

    "whatsapp": {

      "name": "Principal",

      "webhook": "https://go.dominio.com.br/webhook",

      "id": 1,

      "token": "32183831i231u23u321u13u1exemplo",

      "coverImage": null,

      "selectedCommentQueueId": null,

      "whatsmeowname": null,

      "whatsmeowtoken": null,

      "whatsmeowurl": null,

      "hubtoken": null,

      "channel": "whatsapp",

      "status": "CONNECTED",

      "ignoreNumbers": ""

    },

    "tags": [],

    "company": {

      "name": "Bom Negócio"

    }

  }

}










📌API Mensagem Interna


API: Baileys, APIdoZap Pro

Envia uma mensagem de comunicação interna (whisper), sendo visível somente dentro do sistema.

 

Verifique aqui os Pré-Requisitos para utilizar APIs



Endpoint


https://https://api.gpconnect.com.br/api/messages/internal/send


Método


POST


Autenticação


Bearer {seutokenaqui}


Payload

{

  "ticketId": "33461",

  "body": "Lead precisa de retorno no pedido"

}


 “ticketId”: ID do Ticket

  O ticketId é o número que fica entre parênteses em uma conversa.

Por exemplo:

João da Silva (52) | #25678

 nessa situação o ticketId é o 52 o numero 25678 seria o protocolo (não deve ser usado nessa api)

 

➡ “body”: Mensagem Interna


Retorno de API (Payload de Resposta)

Exemplo de retorno do envio de mensagem interna (whisper):

{ 
  "mensagem": "Mensagem INTERNA" 
}










📌 API Mensagem para Grupos

API: Baileys

Envia uma mensagem de texto para um Grupo, com opções de abrir um ticket e/ou atribuir a conversa a uma fila.

Endpoint
'https://https://api.gpconnect.com.br/api/messages/sendGroup'

Metodo
Post

Autenticação
'Content-Type: application/json',
 'Authorization: Bearer {{seutokenaqui}} //Token cadastrado na conexão



 "number": "34324434543543212", //ID DO GRUPO
– “openTicket”: “0” Não abre ticket e “1” Abre Ticket
– “queueId”: “7”, ID da fila desejada (Funciona se abrir ticket)
– "body": "Teste" Mensagem a ser enviada 

Retorno de API (Payload de Resposta)

Exemplo de retorno do envio de mensagem para grupo sem abrir ticket:

{ 
  "mensagem": "Mensagem enviada SEM TICKET", 
  "ticket": null 
}


Exemplo de retorno do envio de mensagem para grupo abrindo ticket:

{

  "mensagem": "Mensagem enviada",

  "ticket": {

    "id": 17428,

    "status": "open",

    "unreadMessages": 1,

    "lastMessage": "Enviei essa mensagem por último no grupo",

    "protocolo": "23735",

    "typebot_sessionId": null,

    "typebot_status": null,

    "customA": null,

    "lastFlowId": null,

    "repeatCount": 0,

    "fromAds": 24,

    "customB": null,

    "nextFlowId": null,

    "isGroup": true,

    "userId": 1,

    "contactId": 17783,

    "whatsappId": 1,

    "queueId": 15,

    "chatbot": false,

    "isMenu": false,

    "variables": null,

    "channel": "whatsapp",

    "queueOptionId": null,

    "companyId": 1,

    "uuid": "5abc7180-de45-4980-9423-c67377737681",

    "promptId": null,

    "createdAt": "2025-01-12 T19:48:08.778Z",

    "updatedAt": "2025-02-28 T13:09:46.832Z",

    "contact": {

      "id": 17783,

      "name": "120363181268041352",

      "number": "120363181268041352",

      "email": "",

      "profilePicUrl": "https://backendurl.com.br/nopicture.png",

      "acceptAudioMessage": true,

      "active": true,

      "disableBot": false,

      "extraInfo": []

    },

    "user": {

      "id": 1,

      "name": "Jonas",

      "restricted": false,

      "away": false,

      "ausencia": null,

      "sigame": false,

      "number": "5511888888888"

    },

    "queue": {

      "id": 15,

      "name": "Financeiro",

      "color": "#999999",

      "typeboturl": "",

      "typebotname": "",

      "typebotexpire": 5000,

      "typebotwait": 1500,

      "flowiseKey": "",

      "flowiseUrl": "",

      "promptId": null,

      "invalidMessage": "",

      "flowId": null,

      "zaiaToken": "",

      "zaiaAgent": null,

      "isTranscribe": false,

      "difyToken": null,

      "difyURL": null,

      "prompt": null

    },

    "whatsapp": {

      "name": "Principal",

      "webhook": "https://go.dominio.com.br/webhook",

      "id": 1,

      "token": "32183831i231u23u321u13u1exemplo",

      "coverImage": null,

      "selectedCommentQueueId": null,

      "whatsmeowname": null,

      "whatsmeowtoken": null,

      "whatsmeowurl": null,

      "hubtoken": null,

      "channel": "whatsapp",

      "status": "CONNECTED",

      "ignoreNumbers": ""

    },

    "tags": [],

    "company": {

      "name": "Bom Negócio"

    }

  }

}








📌API Mensagem de Lista

API: Baileys

Envia uma mensagem com uma Lista de opções, para o usuário escolher uma resposta.

– o Título será a resposta devolvida quando o lead selecionar uma opção

 

Verifique aqui os Pré-Requisitos para utilizar APIs

Endpoint POST


https://https://api.gpconnect.com.br/api/messages/sendList




API
📤 Endpoint


POST https://api.gpconnect.com.br/api/messages/sendList





🔐 Autenticação

A autenticação é feita via token Bearer.

Cabeçalho:
Authorization: Bearer {seutokenaqui}





📥 Parâmetros da Requisição

A requisição deve ser feita com o tipo de conteúdo application/json.

Corpo (JSON)

{

  "number": "5511999999999",

  "body": "Selecione a melhor opção:",

  "optionList": {

    "buttonLabel": "Abrir lista de opções",

    "options": [

      {

        "id": "1",

        "title": "Título A",

        "description": "Descrição A"

      },

      {

        "id": "2",

        "title": "Título B",

        "description": "Descrição B"

      }

    ]

  }

}


Campo

Tipo

Obrigatório

Descrição

number

string

Sim

Número do destinatário (formato internacional: 55 + DDD + número).

body

string

Sim

Mensagem de introdução à lista de opções.

optionList

objeto

Sim

Objeto com o botão e as opções.

buttonLabel

string

Sim

Texto exibido no botão da lista.

options

array

Sim

Lista de objetos com idtitle e description para cada opção.




💻 Exemplo de Código (PHP com cURL)

<?php


$curl = curl_init();


curl_setopt_array($curl, array(

    CURLOPT_URL => 'https://api.gpconnect.com.br/api/messages/sendList',

    CURLOPT_RETURNTRANSFER => true,

    CURLOPT_ENCODING => '',

    CURLOPT_MAXREDIRS => 10,

    CURLOPT_TIMEOUT => 0,

    CURLOPT_FOLLOWLOCATION => true,

    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

    CURLOPT_CUSTOMREQUEST => 'POST',

    CURLOPT_POSTFIELDS => json_encode([

        "number" => "5511999999999",

        "body" => "Selecione a melhor opção:",

        "optionList" => [

            "buttonLabel" => "Abrir lista de opções",

            "options" => [

                [

                    "id" => "1",

                    "title" => "Título A",

                    "description" => "Descrição A"

                ],

                [

                    "id" => "2",

                    "title" => "Título B",

                    "description" => "Descrição B"

                ]

            ]

        ]

    ]),

    CURLOPT_HTTPHEADER => array(

        'Content-Type: application/json',

        'Authorization: Bearer {seutokenaqui}' // Substitua pelo seu token real

    ),

));


$response = curl_exec($curl);

curl_close($curl);


echo $response;





✅ Resposta Esperada

Exemplo de Resposta (Sucesso)

json

CopiarEditar

{

  "status": "success",

  "message": "Lista de opções enviada com sucesso."

}





⚠️ Possíveis Erros

Código HTTP

Descrição

Causa Provável

400

Bad Request

Dados obrigatórios ausentes ou inválidos

401

Unauthorized

Token inválido ou ausente

500

Internal Server Error

Erro interno no servidor da API





Retorno de API (Payload de Resposta)

Exemplo de retorno do envio de mensagem de lista:

{ 
  "mensagem": "Mensagem enviada SEM TICKET", 
  "ticket": null 
}








📌 API Criar Agendamento


API: Baileys

Cria uma mensagem agendada, para um contato previamente cadastrado.

Verifique aqui os Pré-Requisitos para utilizar APIs


Endpoint POST


https://https://api.gpconnect.com.br/api/schedules


API
Utilize o código em requisições HTTPS com ferramentas como cURL ou bibliotecas de integração.



📤 Endpoint

URL:


POST https://api.gpconnect.com.br/api/schedules





🔐 Autenticação

A autenticação é feita via token Bearer.

Cabeçalho:

http

CopiarEditar

Authorization: Bearer {seutokenaqui}





📥 Parâmetros da Requisição

A requisição deve ser enviada com o tipo de conteúdo application/json.

Corpo (JSON)

{

  "body": "Teste de Agendamento",

  "sendAt": "2023-12-17T22:00:00.000Z",

  "contactId": "24294",

  "userId": "34",

  "openTicket": "0",

  "queueId": "0",

  "whatsappId": "2",

  "repetir": "0",

  "repetirTodo": "0",

  "quantasVezes": "0"

}


Campo

Tipo

Obrigatório

Descrição

body

string

Sim

Conteúdo da mensagem a ser enviada.

sendAt

string

Sim

Data e hora do envio no formato ISO 8601 (UTC).

contactId

string

Sim

ID do contato que receberá a mensagem.

userId

string

Sim

ID do usuário responsável pelo agendamento.

openTicket

string

Sim

0 para não abrir ticket, 1 para abrir.

queueId

string

Sim

ID da fila de atendimento. Use 0 se não houver.

whatsappId

string

Sim

ID da conexão WhatsApp a ser usada.

repetir

string

Sim

0 = Não repetir, 999 = Repetir diariamente.

repetirTodo

string

Sim

0 = Não repetir, 999 = Repetir em aniversários.

quantasVezes

string

Sim

Número de repetições (se aplicável).




💻 Exemplo de Código (PHP com cURL)


<?php


$curl = curl_init();


$data = [

    "body" => "Teste de Agendamento",

    "sendAt" => "2023-12-17T22:00:00.000Z",

    "contactId" => "24294",

    "userId" => "34",

    "openTicket" => "0",

    "queueId" => "0",

    "whatsappId" => "2",

    "repetir" => "0",

    "repetirTodo" => "0",

    "quantasVezes" => "0"

];


curl_setopt_array($curl, array(

    CURLOPT_URL => 'https://api.gpconnect.com.br/api/schedules',

    CURLOPT_RETURNTRANSFER => true,

    CURLOPT_ENCODING => '',

    CURLOPT_MAXREDIRS => 10,

    CURLOPT_TIMEOUT => 0,

    CURLOPT_FOLLOWLOCATION => true,

    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

    CURLOPT_CUSTOMREQUEST => 'POST',

    CURLOPT_POSTFIELDS => json_encode($data),

    CURLOPT_HTTPHEADER => array(

        'Content-Type: application/json',

        'Authorization: Bearer {seutokenaqui}' // Substitua pelo token da sua conexão

    ),

));


$response = curl_exec($curl);

curl_close($curl);


echo $response;





✅ Resposta Esperada

Exemplo de Resposta (Sucesso)


{

  "status": "success",

  "message": "Mensagem agendada com sucesso."

}





⚠️ Possíveis Erros

Código HTTP

Descrição

Causa Provável

400

Bad Request

Campos obrigatórios ausentes ou inválidos

401

Unauthorized

Token inválido ou ausente

500

Internal Server Error

Erro inesperado no servidor










📌API Deletar Agendamento
Este documento descreve como utilizar a API da GP Connect para cancelar um agendamento de mensagem previamente configurado, através de uma requisição POST com cURL em PHP.


API: Baileys

Deleta uma mensagem agendada.

Verifique aqui os Pré-Requisitos para utilizar APIs

Endpoint POST


https://https://api.gpconnect.com.br/api/schedules/delete


API
Utilize o código em requisições HTTPS com ferramentas como cURL ou bibliotecas de integração.



📤 Endpoint

URL:

POST https://api.gpconnect.com.br/api/schedules/delete





🔐 Autenticação

A autenticação é feita via token Bearer.

Cabeçalho:


Authorization: Bearer {seutokenaqui}





📥 Parâmetros da Requisição

A requisição deve ser enviada com o tipo de conteúdo application/json.

Corpo (JSON)


{

  "scheduleId": "55"

}


Campo

Tipo

Obrigatório

Descrição

scheduleId

string

Sim

ID do agendamento que se deseja cancelar/excluir.




💻 Exemplo de Código (PHP com cURL)


<?php


$curl = curl_init();


curl_setopt_array($curl, array(

  CURLOPT_URL => 'https://api.gpconnect.com.br/api/schedules/delete',

  CURLOPT_RETURNTRANSFER => true,

  CURLOPT_ENCODING => '',

  CURLOPT_MAXREDIRS => 10,

  CURLOPT_TIMEOUT => 0,

  CURLOPT_FOLLOWLOCATION => true,

  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

  CURLOPT_CUSTOMREQUEST => 'POST',

  CURLOPT_POSTFIELDS => '{

    "scheduleId":"55"

  }',

  CURLOPT_HTTPHEADER => array(

    'Content-Type: application/json',

    'Authorization: Bearer {seutokenaqui}' // Token cadastrado na conexão

  ),

));


$response = curl_exec($curl);


curl_close($curl);

echo $response;





✅ Resposta Esperada

Exemplo de Resposta (Sucesso)


{

  "status": "success",

  "message": "Agendamento cancelado com sucesso."

}





⚠️ Possíveis Erros

Código HTTP

Descrição

Causa Provável

400

Bad Request

scheduleId inválido ou ausente

401

Unauthorized

Token de autenticação ausente ou incorreto

404

Not Found

Agendamento com o ID fornecido não foi encontrado

500

Internal Server Error

Erro inesperado no servidor da API









📌 API Enviar Contato

Leitura estimada: 1 minuto 644 views

API: Baileys

Envia um contato para adicionar ou iniciar uma conversa.

Verifique aqui os Pré-Requisitos para utilizar APIs


Endpoint POST


https://https://api.gpconnect.com.br/api/messages/sendContact


API
Utilize o código em requisições HTTPS com ferramentas como cURL ou bibliotecas de integração.

<?php


$curl = curl_init();


curl_setopt_array($curl, array(

  CURLOPT_URL => 'https://https://api.gpconnect.com.br/api/messages/sendContact',

  CURLOPT_RETURNTRANSFER => true,

  CURLOPT_ENCODING => '',

  CURLOPT_MAXREDIRS => 10,

  CURLOPT_TIMEOUT => 0,

  CURLOPT_FOLLOWLOCATION => true,

  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

  CURLOPT_CUSTOMREQUEST => 'POST',

  CURLOPT_POSTFIELDS => '{

    "number": "5511999999999",        // Número que vai receber o contato (cliente)

    "body": "Maria Oliveira",         // Nome do contato a ser enviado

    "optionList": {

      "phone": "5511987654321",       // Telefone do contato que será enviado

      "company": "ABC Soluções",      // Empresa do contato

      "address": "Rua Central, 123"   // Endereço do contato

    }

  }',

  CURLOPT_HTTPHEADER => array(

    'Content-Type: application/json',

    'Authorization: Bearer {seutokenaqui}' // Token cadastrado na conexão

  ),

));


$response = curl_exec($curl);


curl_close($curl);

echo $response;







📌 API Obter Mensagens por Protocolo

API: Baileys

Retorna todas as mensagens de um protocolo (se esse estiver encerrado / finalizado).

Verifique aqui os Pré-Requisitos para utilizar APIs


Endpoint GET


https://https://api.gpconnect.com.br/api/tickets/messages/6126


API
Utilize o código em requisições HTTPS com ferramentas como cURL ou bibliotecas de integração.



<?php


$curl = curl_init();


curl_setopt_array($curl, array(

  CURLOPT_URL => 'https://api.exemplo.com/api/tickets/messages/6126',

  CURLOPT_RETURNTRANSFER => true,

  CURLOPT_ENCODING => '',

  CURLOPT_MAXREDIRS => 10,

  CURLOPT_TIMEOUT => 30,

  CURLOPT_FOLLOWLOCATION => true,

  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

  CURLOPT_CUSTOMREQUEST => 'GET',

  CURLOPT_POSTFIELDS => '{

    "protocol": "6126" // Número do protocolo do atendimento que você deseja consultar.

  }',

  CURLOPT_HTTPHEADER => array(

    'Content-Type: application/json',

    'Authorization: Bearer {{numero de seu token '

  ),

));


$response = curl_exec($curl);


curl_close($curl);

echo $response;




Atualizado em 22/04/2025
Este artigo foi útil?  
Agradecemos sua avaliação.