Appearance
Integração utilizando Webphone Api4Com
Essa integração permite que você utilize o Webphone da Api4Com para fazer chamadas telefônicas diretamente do seu CRM. Com essa integração, você pode fazer chamadas telefônicas, registrar chamadas, enviar mensagens de voz e muito mais.
Criação de uma nova conta
Para começar a utilizar o Webphone da Api4Com, você precisa criar uma nova conta. Para isso, acesse o Portal da Api4Com, preencha o formulário de cadastro e clique em "Criar conta".
Você também poder criar uma nova conta através da API. Para isso, utilize o seguinte código:
Os campos obrigatórios são:
organization_name: Nome da empresadomain: Domínio da empresa na Api4Com, deve ser único e terminar com.api4com.comemail: E-mail do usuário, deve ser únicopassword: Senha do usuáriophone: Número de telefone da empresacrm: CRM utilizado pela empresa- Opções: 'ActiveCampaign', 'Agendor', 'AppFacilita', 'ExactSalesSpotter', 'Groner', 'HubSpot', 'Kommo', 'MoskitCRM', 'NectarCRM', 'Pipedrive', 'Piperun', 'Ploomes', 'RDCRM', 'Salesflow', 'Salesforce', 'SharpSpring', 'Zendesk', 'ZohoCRM', 'Outros'
user_quantity: Quantidade de usuários- Opções: '1-5', '6-10', '11-20', '21-50', '50+'
JavaScript
const axios = require('axios');
const url = 'https://api.api4com.com/api/v1/accounts/signup';
const payload = {
organization_name: 'Nome da Empresa',
domain: 'seudominio.api4com.com',
email: 'email@usuario.com',
password: 'senha123',
phone: '+554833328530',
crm: 'Outros',
user_quantity: '1-5'
};
axios.post(url, payload).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});Resposta de sucesso:
JSON
{
"status": 201,
"message": "Cadastro realizado com sucesso!"
}Importante:
- Um email de confirmação será enviado para o email informado no cadastro. Para ativar a conta, clique no link de confirmação.
Criando um Token de Acesso que nunca expira
Para criar um Token de Acesso que nunca expira, utilize o seguinte código:
JavaScript
const axios = require('axios');
const url = 'https://api.api4com.com/api/v1/users/accessTokens';
const config = {
headers: {
'Authorization': '<token>'
}
};
const payload = {
ttl: -1
};
axios.post(url, payload, config).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});Resposta de sucesso:
JSON
{
"id": "YggyHfrLEHAWmKiUFbXsT93Tkw2xjwHUbwJ6mgw4Vz5YGubReFGw34HmhrhZDUBM",
"ttl": -1,
"created": "2025-01-01T00:00:00.000
}Importante:
- O token de acesso gerado via Login deve ser enviado no cabeçalho da requisição, no campo
Authorization. - Guarde o token de acesso gerado, pois ele será necessário para fazer as requisições.
Instalação do Webphone
Para instalar o Webphone da Api4Com, acesse o Portal da Api4Com, faça login com sua conta e clique no menu "1 - Webphone" e em seguida clique no link para instalar o Webphone.
Caso você não encontre o link para instalar o Webphone, click aqui para instalar a extensão do Webphone diretamente na Chrome Web Store.
Após instalar a extensão, clique no ícone do Webphone na barra de ferramentas do Chrome e faça login com sua conta da Api4Com.
Para validar a instalação, verifique na parte centro superior do Webphone se o status está como "Você está online", passando o mouse sobre um icone circular verde. Caso tenha algum problema, esse icone ficará laranja ou vermelho. Nesse mesmo local, você pode verificar qual o seu Ramal, guarde esse número, pois ele será necessário para configurar a integração.
Configuração do Webhook
Para configurar o Webhook é necessário criar uma Integração de Usuário via API.
Segue um exemplo de como criar uma Integração de Usuário:
JavaScript
const axios = require('axios');
const url = 'https://api.api4com.com/api/v1/integrations';
const config = {
headers: {
'Authorization': '<token>'
}
};
const payload = {
gateway: 'integration-test',
webhook: true,
webhookConstraint: {
metadata: {
gateway: 'integration-test'
}
},
metadata: {
webhookUrl: 'https://seu-webhook.com/callback',
webhookVersion: 'v1.4',
webhookTypes: ['channel-hangup']
}
};
axios.patch(url, payload, config).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});Resposta de sucesso:
JSON
{
"id": 123,
"gateway": "integration-test",
"webhook": true,
"webhookConstraint": {
"metadata": {
"gateway": "integration-test"
}
},
"metadata": {
"webhookUrl": "https://seu-webhook.com/callback",
"webhookVersion": "v1.4",
"webhookTypes": ["channel-hangup"]
}
}Importante:
- O campo
gatewaydeve ser preenchido com o nome do seu gateway. - O campo
webhookUrldeve ser preenchido com a URL do seu webhook. - Somente as chamadas que atenderem as restrições do webhook serão enviadas para o webhook, ou seja, somente aquelas que possuam o mesmo valor no campo
metadata.
Realizando uma chamada
Para realizar uma chamada, utilize o seguinte código:
JavaScript
const axios = require('axios');
const url = 'https://api.api4com.com/api/v1/dialer';
const config = {
headers: {
'Authorization': '<token>'
}
};
const payload = {
extension: '1000',
phone: '+554833328530',
metadata: {
gateway: 'integration-test',
userId: 123,
entityId: 456
}
};
axios.post(url, payload, config).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});Resposta de sucesso:
JSON
{
"id": "bdf199fa-f85b-4378-80cd-0ac28c1355e9",
"message": "successfull"
}Importante:
- O campo
Authorizationdeve ser preenchido com o token de acesso gerado. - O campo
extensiondeve ser preenchido com o número do ramal do usuário que irá realizar a chamada, neste caso, o número do seu ramal, que você guardou ao instalar o Webphone. - O campo
phonedeve ser preenchido com o número de telefone que você deseja ligar. - O campo
metadatadeve ser preenchido com os dados que você deseja enviar para o webhook.
Recebendo o Webhook
Quando uma chamada é finalizada, o webhook é acionado e envia uma requisição POST para a URL configurada. O corpo da requisição é um JSON com as informações da chamada.
Segue um exemplo de webhook:
JSON
{
"version": "v1.4",
"eventType": "channel-hangup",
"id": "2ee13fa4-975c-499d-bbb8-5177ff418316",
"domain": "seudominio.api4com.com",
"direction": "outbound",
"caller": "1000",
"called": "04833328530",
"startedAt": "2025-01-01 00:00:00",
"answeredAt": "2025-01-01 00:00:05",
"endedAt": "2025-01-01 00:00:10",
"duration": 5,
"hangupCause": "NORMAL_CLEARING",
"hangupCauseCode": "16",
"recordUrl": "https://listener.api4com.com/files/listen/2ee13fa4-975c-499d-bbb8-5177ff418316.mp3",
"metadata": {
"gateway": "integration-test",
"userId": 123,
"entityId": 456
}
}Os campos retornados são:
- O campo
versionindica a versão do webhook. - O campo
eventTypeindica o tipo de evento. - O campo
idé o identificador da chamada. - O campo
domainé o domínio da empresa. - O campo
directionindica se a chamada é de entrada ou saída. - O campo
calleré o número do ramal que realizou a chamada. - O campo
calledé o número de telefone que recebeu a chamada. - O campo
startedAté a data e hora de início da chamada. - O campo
answeredAté a data e hora que a chamada foi atendida. - O campo
endedAté a data e hora que a chamada foi finalizada. - O campo
durationé a duração da chamada em segundos. - O campo
hangupCauseé o motivo do desligamento da chamada. - O campo
hangupCauseCodeé o código do motivo do desligamento da chamada. - O campo
recordUrlé a URL do arquivo de áudio da chamada. - O campo
metadataé um objeto com os dados enviados na requisição de chamada.
Próximos passos
Agora para continuar a integração, você pode:
- Realizar a chamada a partir do seu CRM executando o passo Realizando uma chamada.
- Receber as informações da chamada no seu webhook executando o passo Recebendo o Webhook e adicionar as informações no seu CRM.
Considerações finais
Neste guia, você aprendeu como integrar o Webphone da Api4Com com o seu CRM. Com essa integração, você pode fazer chamadas telefônicas diretamente do seu CRM, registrar chamadas, enviar mensagens de voz e muito mais.
A documentação completa da Api4Com está disponível em https://docs.api4com.com.
Se você tiver alguma dúvida ou precisar de ajuda, entre em contato com o suporte da Api4Com.
