Guia · Conduzir o atendimento
Do lead à proposta: localizar o atendimento, anotar, agendar a visita, registrar o parecer e incluir a proposta.
O que este guia fazDepois que o lead entra na fila, ele vira um atendimento com um corretor. Este guia mostra como o seu sistema acompanha e conduz esse atendimento: anotar, agendar a visita, registrar o parecer e incluir a proposta.
Escopos:
atendimentos:readeatendimentos:write(anotar, descartar, etiquetar),visitas:write(visita),propostas:write(proposta)
🗺️ O caminho
flowchart LR A["POST /leads"] --> B["Atendimento<br/>com corretor"] B --> C["Anotar"] B --> D["Agendar visita"] D --> E["Registrar parecer"] E --> F["Incluir proposta"] B -.-> G["Descartar<br/>(com motivo)"]
Ação, não ediçãoCada passo é uma ação com rota própria. Quando a ação não pode ser feita, a resposta traz um código estável (tabelas abaixo), e toda ação bem-sucedida dispara o webhook do evento.
1️⃣ Localize o atendimento
O POST /leads responde na hora e a distribuição acontece em seguida, então o id do atendimento chega de duas formas:
- pelo webhook
atendimento.incluido, se o convênio cadastrou um endpoint seu; - pela busca, filtrando pelo lead ou pela data de entrada:
curl -X POST https://api.imoviewnext.com.br/pub/v1/atendimentos/search \
-H "Authorization: Bearer imn_seuconvenio_..." \
-H "Content-Type: application/json" \
-d '{ "leadEntryAt": { "from": "2026-09-29T00:00:00Z" }, "status": "em_atendimento" }'2️⃣ Anote
curl -X POST https://api.imoviewnext.com.br/pub/v1/atendimentos/{id}/annotations \
-H "Authorization: Bearer imn_seuconvenio_..." \
-H "Content-Type: application/json" \
-d '{ "text": "Cliente pediu retorno depois das 18h.", "contactedClient": true }'contactedClient: true indica que houve contato com o cliente. private: true deixa a anotação restrita à imobiliária: o webhook atendimento.anotacao_incluida avisa que houve anotação, sem o texto.
3️⃣ Agende a visita
curl -X POST https://api.imoviewnext.com.br/pub/v1/atendimentos/{id}/visitas \
-H "Authorization: Bearer imn_seuconvenio_..." \
-H "Content-Type: application/json" \
-d '{ "propertyId": 1234, "date": "2026-10-05", "time": "10:00", "notes": "Levar a planta." }'date e time são o horário combinado, sem fuso. Visita virtual leva modo: "virtual" e canalVirtual (meet ou telefone); empréstimo de chaves leva tipo: "chaves".
| Recusa | Código |
|---|---|
| Horário que já passou | 422 VISIT_SLOT_IN_PAST |
| Horário indisponível para o corretor | 409 VISIT_SLOT_TAKEN |
| Chave do imóvel indisponível no horário | 409 VISIT_KEY_UNAVAILABLE |
Atendimento com pendência que impede a visita (a message diz qual) | 422 CHECKLIST_PHASE_PENDING |
| Atendimento ainda sem corretor definido | 409 VISIT_HANDOFF_PENDING (a imobiliária agenda essa visita) |
Para reagendar, PUT /visitas/{id} com a nova data e hora (o que não vier fica como está). Para cancelar ou marcar que o cliente não veio, PATCH /visitas/{id}/status com o nome do motivo (visitCancelReasons em GET /schema/support).
4️⃣ Registre o parecer
curl -X PUT https://api.imoviewnext.com.br/pub/v1/visitas/{id}/feedback \
-H "Authorization: Bearer imn_seuconvenio_..." \
-H "Content-Type: application/json" \
-d '{ "liked": true, "reason": "Localização", "notes": "Gostou da vista." }'O motivo vai por nome (feedbackReasons em GET /schema/support), do tipo que casa com liked. A visita ainda ativa passa a realizada.
5️⃣ Inclua a proposta
curl -X POST https://api.imoviewnext.com.br/pub/v1/atendimentos/{id}/propostas \
-H "Authorization: Bearer imn_seuconvenio_..." \
-H "Content-Type: application/json" \
-d '{ "propertyId": 1234, "visitId": 88, "value": 750000, "notes": "À vista." }'A proposta nasce de uma visita com parecer (422 VISIT_WITHOUT_PARECER sem ele) e só uma por imóvel no atendimento (409 PROPOSAL_EXISTS). Aceitar, recusar e reservar ficam no sistema.
🗑️ Se não houver negócio: descarte
curl -X POST https://api.imoviewnext.com.br/pub/v1/atendimentos/{id}/discard \
-H "Authorization: Bearer imn_seuconvenio_..." \
-H "Content-Type: application/json" \
-d '{ "reason": "Sem interesse", "note": "Comprou com outra imobiliária." }'O motivo vai por nome (discardReasons em GET /schema/support, tipo ambos ou atendimento). Só atendimento em andamento é descartado (409 ATENDIMENTO_INVALID_STATE).
🗓️ E a agenda?
Ligações, retornos e lembretes são atividades: POST /atividades (tipo por nome, responsável por id de usuário), depois complete ou cancel. A atividade criada por uma visita muda pela própria visita.
Tudo aqui vale na horaA imobiliária vê o resultado de cada ação na hora, e os webhooks disparam. Teste num atendimento combinado com ela. Veja Ambiente e moderação.
Updated 20 days ago
