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