Review Invites
Pesquise e gerencie os destinatários das suas campanhas de convite para avaliação.
Pesquisa destinatários por nome, e-mail ou telefone nas campanhas de convite para avaliação da sua agência.
Pesquisar destinatários
/api/v1/review-invites{
"data": {
"recipients": [
{
"id": "cm_recip_1",
"name": "Jordan Lee",
"email": "jordan@example.com",
"phone": "",
"source": "manual",
"contactType": "Customer",
"status": "pending",
"campaignId": "cm_campaign_1",
"campaignName": "Spring Checkup Follow-up",
"locationId": "cm_loc_1",
"locationLabel": "Acme Dental — Downtown · Austin",
"alreadyMessaged": false
}
],
"count": 1
}
}Adiciona um ou mais destinatários a uma campanha de convite para avaliação, desduplicados contra o próprio lote e contra todos os já presentes na campanha. Atenção — isto pode disparar um envio real de mensagem: se a campanha de destino já estiver lançada com envio automático ativado, os destinatários recém-adicionados são enfileirados e enviados imediatamente, para seu endereço de e-mail ou número de telefone reais.
Adicionar destinatários a uma campanha
/api/v1/review-invites{
"data": {
"count": 1,
"duplicates": 0,
"alreadyPresent": 0
}
}Corrige o nome, e-mail, telefone ou tipo de contato de um destinatário. E-mail e telefone ficam congelados após uma mensagem ter sido enviada a esse destinatário — alterar qualquer um deles depois de um envio retorna um 409, já que confirmações de entrega e respostas estão vinculadas ao endereço realmente usado.
Atualizar um destinatário
/api/v1/review-invites/update{
"data": {
"id": "cm_recip_1",
"name": "Jordan Lee",
"email": "jordan@example.com",
"phone": null,
"contactType": "Customer",
"status": "pending"
}
}Lista as campanhas de convite para avaliação de um local, mais recentes primeiro.
Listar campanhas
/api/v1/review-invites/campaigns{
"data": {
"rows": [
{
"id": "cm_campaign_1",
"name": "Spring Checkup Follow-up",
"type": "email_sms",
"collectMode": "directory",
"status": "draft",
"archived": false,
"locationLabel": "Acme Dental — Downtown · Austin",
"emailsSent": 0,
"smsSent": 0,
"repliesCount": 0,
"clickRate": null,
"followUpSent": 0,
"autoSend": true,
"yelpCompliant": true,
"staticUrl": null
}
],
"total": 1
}
}Cria uma nova campanha de convite para avaliação como rascunho. locationId é obrigatório; o restante pode ser definido agora ou depois com o endpoint de atualização. Use o endpoint de ação para publicá-la depois de configurada — isso sozinho não envia nada.
Criar uma campanha
/api/v1/review-invites/campaigns{
"data": {
"id": "cm_campaign_1",
"agencyId": "cm_agency_1",
"locationId": "cm_loc_1",
"clientLocationId": "cm_loc_1",
"name": "Spring Checkup Follow-up",
"campaignType": "email_sms",
"channels": "EMAIL",
"status": "draft",
"fromEmail": null,
"replyToEmail": null,
"emailSubject": null,
"emailBody": null,
"smsBody": null,
"smsReviewSite": null,
"reviewSites": null,
"screeningEnabled": false,
"landingTitle": null,
"landingContent": null,
"hideAddress": false,
"hideBusinessName": false,
"followups": null,
"stopFollowupOnClick": false,
"scheduleAt": null,
"timezone": null,
"autoSend": true,
"staticUrl": null,
"launchedAt": null,
"emailHtml": null,
"thankYouEnabled": false,
"thankYouSubject": null,
"thankYouBody": null,
"thankYouDelayHours": 12,
"funnelThreshold": 4,
"funnelStyle": null,
"lowRankContent": null,
"hideFeedbackBox": false,
"ratingMechanism": null,
"askName": true,
"askFeedback": true,
"archivedAt": null,
"hideImage": false,
"clientId": "cm_client_1",
"createdAt": "2026-01-20T09:00:00.000Z",
"updatedAt": "2026-01-20T09:00:00.000Z",
"createdByUserId": null,
"createdByType": "user",
"archived": false
}
}Retorna uma única campanha pelo seu id.
Obter uma campanha
/api/v1/review-invites/campaigns/{id}{
"data": {
"id": "cm_campaign_1",
"agencyId": "cm_agency_1",
"locationId": "cm_loc_1",
"clientLocationId": "cm_loc_1",
"name": "Spring Checkup Follow-up",
"campaignType": "email_sms",
"channels": "EMAIL",
"status": "draft",
"fromEmail": null,
"replyToEmail": null,
"emailSubject": "How was your visit?",
"emailBody": null,
"smsBody": null,
"smsReviewSite": null,
"reviewSites": null,
"screeningEnabled": false,
"landingTitle": null,
"landingContent": null,
"hideAddress": false,
"hideBusinessName": false,
"followups": null,
"stopFollowupOnClick": false,
"scheduleAt": null,
"timezone": null,
"autoSend": true,
"staticUrl": null,
"launchedAt": null,
"emailHtml": null,
"thankYouEnabled": false,
"thankYouSubject": null,
"thankYouBody": null,
"thankYouDelayHours": 12,
"funnelThreshold": 4,
"funnelStyle": null,
"lowRankContent": null,
"hideFeedbackBox": false,
"ratingMechanism": null,
"askName": true,
"askFeedback": true,
"archivedAt": null,
"hideImage": false,
"clientId": "cm_client_1",
"createdAt": "2026-01-20T09:00:00.000Z",
"updatedAt": "2026-01-20T09:00:00.000Z",
"createdByUserId": null,
"createdByType": "user",
"archived": false
}
}Edita a configuração de uma campanha. Envie apenas os campos que deseja alterar. Para mudar o status do ciclo de vida (publish, stop, clone, archive, unarchive) use o endpoint de ação em vez de definir status diretamente aqui.
Atualizar uma campanha
/api/v1/review-invites/campaigns/{id}{
"data": {
"id": "cm_campaign_1",
"agencyId": "cm_agency_1",
"locationId": "cm_loc_1",
"clientLocationId": "cm_loc_1",
"name": "Spring Checkup Follow-up (updated)",
"campaignType": "email_sms",
"channels": "EMAIL",
"status": "draft",
"fromEmail": null,
"replyToEmail": null,
"emailSubject": "How was your visit?",
"emailBody": null,
"smsBody": null,
"smsReviewSite": null,
"reviewSites": null,
"screeningEnabled": false,
"landingTitle": null,
"landingContent": null,
"hideAddress": false,
"hideBusinessName": false,
"followups": null,
"stopFollowupOnClick": false,
"scheduleAt": null,
"timezone": null,
"autoSend": true,
"staticUrl": null,
"launchedAt": null,
"emailHtml": null,
"thankYouEnabled": false,
"thankYouSubject": null,
"thankYouBody": null,
"thankYouDelayHours": 12,
"funnelThreshold": 4,
"funnelStyle": null,
"lowRankContent": null,
"hideFeedbackBox": false,
"ratingMechanism": null,
"askName": true,
"askFeedback": true,
"archivedAt": null,
"hideImage": false,
"clientId": "cm_client_1",
"createdAt": "2026-01-20T09:00:00.000Z",
"updatedAt": "2026-01-21T10:00:00.000Z",
"createdByUserId": null,
"createdByType": "user",
"archived": false
}
}Executa uma ação de ciclo de vida em uma campanha. publish a lança — se autoSend estiver ativado, isso começa a enviar e-mails ou SMS reais imediatamente, e é condicionado por canal: uma campanha que inclui EMAIL precisa de um domínio de envio verificado para o cliente, e uma que inclui SMS precisa de um número verificado pela operadora para o local. Se alguma dessas condições falhar, um 422 explicativo é retornado; provisionar um domínio ou número de telefone é uma etapa exclusiva da interface, não algo que esta API possa fazer por você. stop interrompe uma campanha ativa. clone a duplica como um novo rascunho. autoSend ativa ou desativa o envio automático para novos destinatários — envie on. archive arquiva uma campanha interrompida; em uma ainda ativa isso é um no-op, não um erro — a resposta é {id, skipped: true} em vez da campanha completa, então verifique skipped em vez de assumir que data é sempre uma Campaign. unarchive restaura uma campanha arquivada.
Executar uma ação de ciclo de vida da campanha
/api/v1/review-invites/campaigns/{id}/action{
"data": {
"id": "cm_campaign_1",
"agencyId": "cm_agency_1",
"locationId": "cm_loc_1",
"clientLocationId": "cm_loc_1",
"name": "Spring Checkup Follow-up (copy)",
"campaignType": "email_sms",
"channels": "EMAIL",
"status": "draft",
"fromEmail": null,
"replyToEmail": null,
"emailSubject": "How was your visit?",
"emailBody": null,
"smsBody": null,
"smsReviewSite": null,
"reviewSites": null,
"screeningEnabled": false,
"landingTitle": null,
"landingContent": null,
"hideAddress": false,
"hideBusinessName": false,
"followups": null,
"stopFollowupOnClick": false,
"scheduleAt": null,
"timezone": null,
"autoSend": false,
"staticUrl": null,
"launchedAt": null,
"emailHtml": null,
"thankYouEnabled": false,
"thankYouSubject": null,
"thankYouBody": null,
"thankYouDelayHours": 12,
"funnelThreshold": 4,
"funnelStyle": null,
"lowRankContent": null,
"hideFeedbackBox": false,
"ratingMechanism": null,
"askName": true,
"askFeedback": true,
"archivedAt": null,
"hideImage": false,
"clientId": "cm_client_1",
"createdAt": "2026-01-21T10:05:00.000Z",
"updatedAt": "2026-01-21T10:05:00.000Z",
"createdByUserId": null,
"createdByType": "user",
"archived": false
}
}Lista os modelos de mensagem de convite para avaliação salvos pela agência — conteúdo de e-mail/SMS reutilizável para campanhas.
Listar modelos de mensagem
/api/v1/review-invites/templates{
"data": [
{
"id": "cm_tmpl_1",
"name": "Standard follow-up",
"description": "Default post-visit email template",
"content": null,
"assignedLocationIds": [],
"createdAt": "2026-01-15T09:00:00.000Z"
}
]
}Cria um modelo de mensagem de convite para avaliação reutilizável. content é o formato JSON de texto rico que o editor do criador de campanhas produz.
Criar um modelo de mensagem
/api/v1/review-invites/templates{
"data": {
"id": "cm_tmpl_1",
"agencyId": "cm_agency_1",
"name": "Standard follow-up",
"description": "Default post-visit email template",
"content": null,
"assignedLocationIds": [],
"createdAt": "2026-01-15T09:00:00.000Z",
"updatedAt": "2026-01-15T09:00:00.000Z"
}
}Edita um modelo. Envie apenas os campos que deseja alterar.
Atualizar um modelo de mensagem
/api/v1/review-invites/templates/{id}{
"data": {
"id": "cm_tmpl_1",
"agencyId": "cm_agency_1",
"name": "Standard follow-up",
"description": "Default post-visit email template (updated)",
"content": null,
"assignedLocationIds": [
"cm_loc_1"
],
"createdAt": "2026-01-15T09:00:00.000Z",
"updatedAt": "2026-01-16T09:00:00.000Z"
}
}Exclui um modelo permanentemente. Isso não afeta campanhas que já usam seu conteúdo — apenas remove o modelo reutilizável.
Excluir um modelo de mensagem
/api/v1/review-invites/templates/{id}{
"data": {
"ok": true
}
}