70 lines
2.1 KiB
Markdown
70 lines
2.1 KiB
Markdown
|
|
||
|
## Atenção
|
||
|
Para rodar a aplicação esteja na pasta backend. O .env deve estar dentro da pasta backend para rodar essa api.
|
||
|
## Use o env.example
|
||
|
|
||
|
## Nova Funcionalidade: Integração de Transcrição com HubSpot
|
||
|
|
||
|
Esta funcionalidade permite receber, processar e registrar transcrições de chamadas telefônicas diretamente no HubSpot, com associação automática ao contato e, se disponível, ao ticket da chamada.
|
||
|
|
||
|
### Fluxo Geral
|
||
|
|
||
|
1. Uma transcrição de chamada é recebida via endpoint REST (`/api/v1/crm/transcriptions`).
|
||
|
2. O sistema consulta o Redis para verificar se há um `ticketId` associado ao `callerId`.
|
||
|
3. Se existir:
|
||
|
- A nota é associada ao contato e ao ticket correspondente no HubSpot.
|
||
|
4. Se não existir:
|
||
|
- A nota é criada e associada apenas ao contato.
|
||
|
|
||
|
### Exemplo de Requisição
|
||
|
|
||
|
**Endpoint:** `POST /api/v1/crm/transcriptions`
|
||
|
|
||
|
**Body:**
|
||
|
```json
|
||
|
{
|
||
|
"callerId": "5511987654321",
|
||
|
"uniqueId": "chamada-001",
|
||
|
"transcription": {
|
||
|
"summary": "Cliente solicitou informações sobre o pedido.",
|
||
|
"client": "Gostaria de saber como está meu pedido.",
|
||
|
"agent": "Claro! Posso verificar agora."
|
||
|
},
|
||
|
"recordingUrl": "https://exemplo.com/gravação/audio.wav"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
---
|
||
|
|
||
|
### Verificação Prévia de Ticket
|
||
|
|
||
|
Antes de enviar a transcrição de uma chamada, o sistema realiza uma verificação para saber se já existe um ticket associado ao número de telefone (`callerId` / `crmPhone`).
|
||
|
|
||
|
**Endpoint:**
|
||
|
`GET /api/v1/crm/tickets/check-by-crmphone`
|
||
|
|
||
|
**Parâmetros de consulta (query params):**
|
||
|
|
||
|
| Parâmetro | Tipo | Obrigatório | Descrição |
|
||
|
|-----------|--------|-------------|----------------------------------------|
|
||
|
| crmPhone | string | Sim | Número do telefone do cliente (E.164) |
|
||
|
|
||
|
**Exemplo de Requisição:**
|
||
|
|
||
|
```
|
||
|
GET /api/v1/crm/tickets/check-by-crmphone?crmPhone=5511997532324
|
||
|
```
|
||
|
|
||
|
**Resposta (200 OK):**
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"hasTicket": true,
|
||
|
"ticketId": "25292628260"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### Lógica de Uso
|
||
|
|
||
|
- Se `hasTicket` for `true`, o `ticketId` será incluído no envio da transcrição.
|
||
|
- Se `hasTicket` for `false`, a transcrição **não será enviada** para essa api para o envio ao HubSpot.
|