crm-api-template-generator/backend/readme.md

70 lines
2.1 KiB
Markdown
Raw Normal View History

## 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.