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 faz

Depois 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:read e atendimentos: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ção

Cada 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".

RecusaCódigo
Horário que já passou422 VISIT_SLOT_IN_PAST
Horário indisponível para o corretor409 VISIT_SLOT_TAKEN
Chave do imóvel indisponível no horário409 VISIT_KEY_UNAVAILABLE
Atendimento com pendência que impede a visita (a message diz qual)422 CHECKLIST_PHASE_PENDING
Atendimento ainda sem corretor definido409 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 hora

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


Did this page help you?