Referência de eventos

Todos os 26 eventos de webhook da Listings API, agrupados por recurso, com os campos exatos e um exemplo de payload para cada um.

26 eventos, agrupados pelo recurso REST ao qual se referem. Todos os eventos desta página são entregues à sua única URL de webhooks. Não há assinatura por evento, portanto direcione o processamento com base em event e ignore o que você não precisa.

Todos usam o payload padrão, exceto listing.submission, que é descrito abaixo. Os campos opcionais dentro de data são omitidos quando estão vazios, em vez de serem enviados como null.

Índice

EventoRecursoDisparado quando
listing.submissionListagensO envio de uma citação a um site de diretório é concluído
profile.createdLocaisUm local é criado
profile.updatedLocaisUm local é editado
profile.deletedLocaisUm local é arquivado
connection.location_connectedContas conectadasUma listagem do Google ou do Facebook é vinculada
connection.location_disconnectedContas conectadasUma listagem é desvinculada
connection.reauth_requiredContas conectadasAs credenciais foram invalidadas
connection.listing_inaccessibleContas conectadasO acesso a uma listagem foi perdido
connection.google_verification_verifiedContas conectadasA verificação do Google foi bem-sucedida
connection.google_verification_failedContas conectadasA verificação do Google falhou
interaction.reviewAvaliaçõesUma avaliação é recebida ou alterada
interaction.responseAvaliaçõesUma resposta é publicada ou alterada
local_post.createdPublicaçõesUma publicação é criada
local_post.publishedPublicaçõesUma publicação fica disponível no Google
local_post.rejectedPublicaçõesO Google rejeitou uma publicação
local_post.deletedPublicaçõesUma publicação é excluída
social_post.createdSocialUma publicação em redes sociais é criada
social_post.publishedSocialUma publicação em redes sociais fica disponível em todos os canais selecionados
social_post.failedSocialA publicação falhou em pelo menos um canal
social_post.rejectedSocialUm fluxo de aprovação rejeitou a publicação
social_post.deletedSocialUma publicação em redes sociais é arquivada
social_connection.connectedSocialUm canal da marca é conectado ou reconectado
social_connection.disconnectedSocialUm canal da marca é removido intencionalmente
social_connection.archivedSocialUm canal da marca é perdido involuntariamente
review_analytics.daily_snapshotAnálisesA consolidação diária de avaliações é executada
review_analytics.weekly_snapshotAnálisesA consolidação semanal de avaliações é executada

Listagens

Complementa os endpoints de Listagens, em particular GET /locations/{locationId}/listings/premium, que retorna syncStatus e listingUrl por citação, informados por este evento.

listing.submission

Disparo: o envio de uma citação de um local a um site de diretório atinge um estado final.

Nível superior:

CampoTipoDescrição
eventstringSempre listing.submission.
dataobjectVeja abaixo.
statusstringsuccess, incomplete ou canceled.
live_linkstringA URL da listagem publicada. Apenas em success, e somente quando a URL é conhecida.
error_messagestringO motivo pelo qual o envio não pôde ser concluído. Apenas em incomplete.

Dentro de data:

CampoTipoDescrição
business_idintegerO ID numérico do local.
v4_business_idstringLocation:<id> codificado em base64, no formato de ID global.
location_idstringO mesmo ID global em base64, não uma string numérica.
site.idintegerO ID do site de diretório.
site.namestringO nome do site de diretório, e.g. Yelp.
site.urlstringA URL da página inicial do site de diretório.
JSON
{  "event": "listing.submission",  "data": {    "business_id": 279381,    "v4_business_id": "TG9jYXRpb246Mjc5Mzgx",    "location_id": "TG9jYXRpb246Mjc5Mzgx",    "site": {      "id": 42,      "name": "Yelp",      "url": "https://www.yelp.com"    }  },  "status": "success",  "live_link": "https://www.yelp.com/biz/acme-dental-downtown"}

Locais

Ciclo de vida do local, com correspondência 1:1 com createLocation, updateLocation e archiveLocations. Escopo por local: location_id é sempre uma string numérica.

profile.created

Disparo: um novo local é criado.

Campo de dataTipoDescrição
sourcestringQuem o criou: user, api ou bulk_edit.
JSON
{  "event": "profile.created",  "timestamp": "2026-08-25T10:04:00Z",  "account_id": 11073,  "location_id": "901234",  "data": { "source": "api" }}

profile.updated

Disparo: os detalhes de um local existente são editados.

Entrega limitada por debounce a uma por local a cada 60 segundos, no início da janela. As edições dentro da janela são suprimidas, não adiadas. Elas nunca são entregues. Trate changed_fields como uma indicação da edição que iniciou a janela, não como um conjunto completo de diferenças.

O evento chega no início da janela, portanto consultar o local quando ele chega mostra apenas a primeira edição. Programe uma segunda consulta após o encerramento da janela, pelo menos 60 segundos depois, e também faça a reconciliação dos locais periodicamente, pois este evento tem apenas uma tentativa de entrega, sem novas tentativas. Veja recuperação após a perda de um evento.

Campo de dataTipoDescrição
sourcestringuser, api ou bulk_edit.
changed_fieldsarray de stringNomes dos campos do local que foram alterados, e.g. name, phone, address1. Omitido quando vazio.
JSON
{  "event": "profile.updated",  "timestamp": "2026-08-25T10:06:12Z",  "account_id": 11073,  "location_id": "901234",  "data": {    "source": "user",    "changed_fields": ["name", "phone"]  }}

profile.deleted

Disparo: um local é arquivado. Trata-se de uma exclusão lógica. Não há exclusão permanente, e o arquivamento pode ser cancelado com cancelArchiveLocations, o que não gera um evento.

Campo de dataTipoDescrição
sourcestringuser, api ou bulk_edit.
JSON
{  "event": "profile.deleted",  "timestamp": "2026-08-25T10:20:44Z",  "account_id": 11073,  "location_id": "901234",  "data": { "source": "user" }}

Contas conectadas

Ciclo de vida e integridade das conexões com Google e Facebook, junto aos endpoints de Contas conectadas. Escopo por local. platform é sempre google ou facebook; outros provedores não emitem esses eventos.

connected_account_id está sempre presente como chave, mas seu valor é null nos dois eventos de verificação do Google.

connection.location_connected

Gatilho: uma listagem do Google ou do Facebook é vinculada a um local.

Campo dataTipoDescrição
platformstringgoogle ou facebook.
connected_account_idstringA conta conectada que foi vinculada.
JSON
{  "event": "connection.location_connected",  "timestamp": "2026-08-25T14:32:10Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "platform": "google",    "connected_account_id": "ba03bc4b-9f8c-4d3b-8e93-9628034c63cc"  }}

connection.location_disconnected

Gatilho: uma listagem do Google ou do Facebook é desvinculada de um local.

Campo dataTipoDescrição
platformstringgoogle ou facebook.
connected_account_idstringA conta conectada que foi desvinculada.
JSON
{  "event": "connection.location_disconnected",  "timestamp": "2026-08-25T14:35:02Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "platform": "google",    "connected_account_id": "ba03bc4b-9f8c-4d3b-8e93-9628034c63cc"  }}

connection.reauth_required

Gatilho: as credenciais da conta conectada foram invalidadas. Nada será sincronizado por essa conexão até que alguém a autorize novamente.

Campo dataTipoDescrição
platformstringgoogle ou facebook.
connected_account_idstringA conta conectada que precisa de uma nova autenticação.
reasonstringDescrição legível por humanos. Omitida quando a origem não fornece uma.
JSON
{  "event": "connection.reauth_required",  "timestamp": "2026-08-25T14:40:18Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "platform": "google",    "connected_account_id": "ba03bc4b-9f8c-4d3b-8e93-9628034c63cc",    "reason": "Google credentials are invalid. Please reconnect."  }}

connection.listing_inaccessible

Gatilho: a conta conectada não consegue mais acessar a listagem do local. É diferente de reauth_required: as credenciais ainda podem ser plenamente válidas, mas o acesso àquela listagem específica foi removido.

Campo dataTipoDescrição
platformstringgoogle ou facebook.
connected_account_idstringA conta conectada que perdeu o acesso.
reasonstringDescrição legível por humanos. Omitida quando a origem não fornece uma.
JSON
{  "event": "connection.listing_inaccessible",  "timestamp": "2026-08-25T14:42:55Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "platform": "facebook",    "connected_account_id": "cf12de77-2211-4a09-b7c1-0a6f3b2e91aa",    "reason": "No longer has access to this listing."  }}

connection.google_verification_verified

Gatilho: o Google Business Profile de um local é aprovado na verificação.

Campo dataTipoDescrição
platformstringSempre google.
connected_account_idnullSempre null nos eventos de verificação.
JSON
{  "event": "connection.google_verification_verified",  "timestamp": "2026-08-25T14:50:00Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "platform": "google",    "connected_account_id": null  }}

connection.google_verification_failed

Gatilho: uma verificação do Google Business Profile termina com falha. Nenhuma chamada REST inicia uma verificação; o próprio status pode ser consultado, conforme descrito acima.

Apenas estados finais emitem um evento: VERIFIED dispara o evento _verified, e SUSPENDED ou DUPLICATE (failure_type rejected) e ERROR_WHILE_FETCHING (transient) disparam este evento. Os estados em andamento (PENDING_VERIFICATION, UNDER_REVIEW, NOT_VERIFIED, NOT_CONNECTED) não produzem nenhum evento, portanto a ausência de um evento não é um sinal. Consulte periodicamente googleVerificationStatus por meio de uma consulta ao local enquanto uma verificação estiver em andamento.

Campo dataTipoDescrição
platformstringSempre google.
connected_account_idnullSempre null nos eventos de verificação.
failure_typestringrejected para um perfil suspenso ou duplicado; transient quando não foi possível consultar o Google. Uma nova tentativa só é indicada para transient.
reasonstringDescrição legível por humanos. Omitida quando a origem não fornece uma.
JSON
{  "event": "connection.google_verification_failed",  "timestamp": "2026-08-25T14:52:31Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "platform": "google",    "connected_account_id": null,    "failure_type": "rejected",    "reason": "This profile is suspended."  }}

Avaliações

Avaliações e respostas, junto aos endpoints de Avaliações, incluindo responder, editar resposta e arquivar resposta.

As avaliações na categoria Social são excluídas pela filtragem e nunca são entregues.

interaction.review

Gatilho: uma avaliação é recebida pelo sistema ou alterada.

Campo data.interactionTipoDescrição
idstringUUID da interação. Ele identifica a avaliação, não esta alteração: o mesmo id é recebido novamente sempre que a avaliação muda. Use-o como chave do seu registro; nunca o use para suprimir uma entrega posterior. Consulte duplicatas e ordenação.
typestringReview.
contentstringO corpo da avaliação. Pode ser null.
ratingnumberNota em estrelas. Pode ser null para origens que não têm essa nota.
titlestringTítulo da avaliação, quando a origem fornece um.
author_namestringNome de exibição do autor da avaliação.
author_avatarstringURL do avatar do autor da avaliação.
datestringData em que a avaliação foi publicada na origem, no formato ISO-8601.
sourcestringDe onde veio, e.g. google.com, facebook.com.
permalinkstringLink para a avaliação na origem.
categorystringCategoria da interação. Social é excluído pela filtragem antes da entrega.
interaction_statusstringStatus da interação no fluxo de trabalho.
parent_idstringSempre null para uma avaliação.
interaction_request_idstringA solicitação à qual esta interação pertence. Pode ser null.
JSON
{  "event": "interaction.review",  "timestamp": "2026-08-25T09:12:44Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "interaction": {      "id": "6f8a1d20-3e11-4a55-9f7d-2b0c9e5a4471",      "type": "Review",      "content": "Friendly staff and no waiting.",      "rating": 5,      "title": null,      "author_name": "Dana R.",      "author_avatar": "https://lh3.googleusercontent.com/a/example",      "date": "2026-08-25T08:58:02Z",      "source": "google.com",      "permalink": "https://maps.google.com/example-review",      "category": "Review",      "interaction_status": "unread",      "parent_id": null,      "interaction_request_id": "3c1e9b74-88a2-4d0e-9c31-77a1f0be5d92"    }  }}

interaction.response

Gatilho: uma resposta a uma avaliação é publicada, editada ou arquivada. A estrutura é a mesma de interaction.review, com duas diferenças: type é Response, e parent_id aponta para a avaliação que está sendo respondida.

Campo data.interactionTipoDescrição
typestringResponse.
parent_idstringUUID da avaliação à qual esta resposta se refere.
contentstringO texto da resposta.
ratingnumberSempre null em uma resposta.

Todos os outros campos listados em interaction.review estão presentes com o mesmo significado.

JSON
{  "event": "interaction.response",  "timestamp": "2026-08-25T09:30:07Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "interaction": {      "id": "b2d7c095-5f43-4e21-8a10-6d9c3f77e208",      "type": "Response",      "content": "Thanks Dana, see you next time!",      "rating": null,      "author_name": "Acme Dental Downtown",      "date": "2026-08-25T09:29:55Z",      "source": "google.com",      "permalink": "https://maps.google.com/example-review",      "category": "Review",      "interaction_status": "responded",      "parent_id": "6f8a1d20-3e11-4a55-9f7d-2b0c9e5a4471",      "interaction_request_id": "3c1e9b74-88a2-4d0e-9c31-77a1f0be5d92"    }  }}

Publicações

Publicações locais do Google Business Profile, junto aos endpoints de Publicações. Com escopo por local, location_id é uma string numérica.

Os quatro eventos compartilham a mesma estrutura de data; os campos opcionais variam. Todos os campos opcionais são omitidos quando vazios.

Campo de dataTipoDescrição
post_idintegerA publicação à qual este item pertence, identificada pelo id retornado pelos endpoints de criação.
post_item_idintegerO item por local. Uma publicação para 20 locais gera 20 itens, e os eventos são por item.
post_typestringSTANDARD, EVENT ou OFFER.
post_external_idstringO nome do recurso atribuído pelo próprio Google à publicação. Ausente até que o Google a aceite.
published_urlstringUma URL que pode ser aberta no navegador. Geralmente ausente: o Google não a retorna de forma consistente; use post_external_id para fazer a correlação.
rejection_reasonstringSomente em local_post.rejected.

local_post.created

Gatilho: um item de publicação é criado e colocado na fila para envio ao Google. Ele ainda não está no ar.

JSON
{  "event": "local_post.created",  "timestamp": "2026-08-25T11:02:00Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "post_id": 88421,    "post_item_id": 5512309,    "post_type": "STANDARD"  }}

local_post.published

Gatilho: o Google aceitou a publicação e ela está no ar.

JSON
{  "event": "local_post.published",  "timestamp": "2026-08-25T11:06:41Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "post_id": 88421,    "post_item_id": 5512309,    "post_type": "STANDARD",    "post_external_id": "accounts/123/locations/456/localPosts/789"  }}

local_post.rejected

Gatilho: o Google rejeitou a publicação ou houve uma falha no envio.

JSON
{  "event": "local_post.rejected",  "timestamp": "2026-08-25T11:07:15Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "post_id": 88421,    "post_item_id": 5512310,    "post_type": "OFFER",    "rejection_reason": "Rejected"  }}

local_post.deleted

Gatilho: o item de publicação é excluído.

JSON
{  "event": "local_post.deleted",  "timestamp": "2026-08-25T15:40:09Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "post_id": 88421,    "post_item_id": 5512309,    "post_type": "STANDARD",    "post_external_id": "accounts/123/locations/456/localPosts/789"  }}

Social

Publicação em redes sociais no nível da marca e ciclo de vida das conexões, junto aos endpoints de Social. Nove eventos: cinco para publicações, quatro para conexões.

account_id e timestamp estão presentes normalmente. Os IDs dentro de data são os mesmos UUIDs simples usados pela API REST, enviados como strings.

social_post.created

Gatilho: uma publicação de rede social é criada. Somente na criação — editar uma publicação existente não emite o evento novamente.

Campo de dataTipoDescrição
post_idstringO UUID da publicação, o mesmo socialPostId retornado por create.
social_profile_idstringA marca à qual a publicação pertence. null se a publicação não tiver uma marca.
statusstringO status da publicação no momento da criação.
created_byintegerO usuário que a criou.
platform_idsarray of integerIDs internos das plataformas às quais a publicação se destina.
JSON
{  "event": "social_post.created",  "timestamp": "2026-09-28T14:02:11Z",  "account_id": 62570,  "location_id": null,  "data": {    "post_id": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345",    "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",    "status": "scheduled",    "created_by": 40122,    "platform_ids": [1, 2, 4]  }}

social_post.published

Gatilho: a publicação entrou no ar com sucesso completo. Este evento é emitido somente em caso de sucesso completo: pelo menos um canal publicou e nenhum canal apresentou erro. Uma publicação parcial não o emite — nesse caso, é emitido social_post.failed.

Campo de dataTipoDescrição
post_idstringO UUID da publicação.
social_profile_idstringA marca à qual a publicação pertence.
statusstringO status da publicação.
published_onstringO instante em que a publicação entrou no ar, em formato ISO-8601. null se não tiver sido registrado.
itemsarray of objectUma entrada por canal; campos abaixo.
items[].platformstringNome da plataforma, e.g. instagram.
items[].social_platform_idintegerID interno da plataforma.
items[].connected_account_idstringO UUID da conexão que fez a publicação.
items[].published_urlstringA URL em que o item publicado está no ar.
items[].vendor_post_idstringO ID atribuído pela própria plataforma ao item publicado.
items[].statusstringO status desse canal.
JSON
{  "event": "social_post.published",  "timestamp": "2026-10-02T13:30:07Z",  "account_id": 62570,  "location_id": null,  "data": {    "post_id": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345",    "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",    "status": "published",    "published_on": "2026-10-02T13:30:04",    "items": [      {        "platform": "instagram",        "social_platform_id": 2,        "connected_account_id": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7",        "published_url": "https://www.instagram.com/p/CxYz1234abc/",        "vendor_post_id": "18029384756012345",        "status": "success"      }    ]  }}

social_post.failed

Gatilho: houve uma falha na publicação. Esta é uma falha de entrega, distinta de uma rejeição editorial. O evento é disparado na última tentativa, portanto não é emitido enquanto ainda houver tentativas disponíveis para a publicação.

items contém somente os canais que apresentaram erro, portanto uma publicação que foi publicada em duas plataformas e falhou em uma terceira chega aqui com um item.

Campo de dataTipoDescrição
post_idstringO UUID da publicação.
social_profile_idstringA marca à qual a publicação pertence.
statusstringO status da publicação.
itemsarray of objectUma entrada por canal com falha; campos abaixo.
items[].platformstringNome da plataforma.
items[].social_platform_idintegerID interno da plataforma.
items[].statusstringO status desse canal.
items[].reasonstringMotivo resumido, truncado em 300 caracteres. Pode ser null.
items[].vendor_errorstringUma mensagem de tamanho limitado, segura para exibição ao usuário, derivada do erro da plataforma. Nunca o payload bruto da plataforma. Pode ser null.
JSON
{  "event": "social_post.failed",  "timestamp": "2026-10-02T13:34:55Z",  "account_id": 62570,  "location_id": null,  "data": {    "post_id": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345",    "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",    "status": "failed",    "items": [      {        "platform": "linkedin",        "social_platform_id": 4,        "status": "error",        "reason": "Authorization expired",        "vendor_error": "The access token is no longer valid."      }    ]  }}

social_post.rejected

Gatilho: um fluxo de aprovação rejeitou a publicação. A rejeição é editorial, não uma falha de entrega: a publicação nunca chegou a uma plataforma.

Campo de dataTipoDescrição
post_idstringO UUID da publicação.
social_profile_idstringA marca à qual a publicação pertence.
statusstringO status da publicação.
rejection_reasonstringO comentário do revisor. null quando ele não deixou nenhum.
JSON
{  "event": "social_post.rejected",  "timestamp": "2026-09-29T09:11:03Z",  "account_id": 62570,  "location_id": null,  "data": {    "post_id": "e08b2d97-6f14-4c22-b7a5-9d3e1f6c4a70",    "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",    "status": "rejected",    "rejection_reason": "Please use the updated product name."  }}

social_post.deleted

Gatilho: a publicação foi arquivada, seja por meio de POST /social/posts/cancel ou pela rotina agendada de arquivamento. O evento só é disparado quando há uma transição real, portanto arquivar novamente uma publicação já arquivada não emite nada.

Campo de dataTipoDescrição
post_idstringO UUID da publicação.
social_profile_idstringA marca à qual a publicação pertence.
statusstringO status da publicação.
archived_atstringO instante em que a publicação foi arquivada, em formato ISO-8601. null se não tiver sido registrado.
JSON
{  "event": "social_post.deleted",  "timestamp": "2026-09-30T16:20:41Z",  "account_id": 62570,  "location_id": null,  "data": {    "post_id": "e08b2d97-6f14-4c22-b7a5-9d3e1f6c4a70",    "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",    "status": "archived",    "archived_at": "2026-09-30T16:20:39"  }}

social_connection.connected

Gatilho: um canal da marca tornou-se ativo, seja na primeira conexão ou na reconexão de um canal que havia sido arquivado. is_reconnect diferencia os dois casos.

Campo de dataTipoDescrição
social_profile_idstringA marca à qual o canal está vinculado.
connected_account_idstringO UUID da conexão, o id retornado pela lista de conexões.
platformstringNome da plataforma, e.g. instagram.
display_namestringO nome de exibição do canal. Pode ser null.
is_reconnectbooleanfalse na primeira conexão, true quando um canal anteriormente arquivado voltou a ficar ativo.
listing_connected_account_idstringPresente somente quando o canal também está vinculado a uma conta conectada do Listings. Omitido nos demais casos.
JSON
{  "event": "social_connection.connected",  "timestamp": "2026-09-27T11:05:22Z",  "account_id": 62570,  "location_id": null,  "data": {    "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",    "connected_account_id": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7",    "platform": "instagram",    "display_name": "Jenny Home",    "is_reconnect": false  }}

social_connection.disconnected

Gatilho: o canal foi removido deliberadamente por uma chamada a disconnect. O evento só é emitido quando o canal foi de fato arquivado, portanto uma desconexão que falhou não produz um evento falso.

Campo de dataTipoDescrição
social_profile_idstringA marca à qual o canal estava vinculado.
connected_account_idstringO UUID da conexão.
platformstringNome da plataforma.
display_namestringO nome de exibição do canal. Pode ser null.
JSON
{  "event": "social_connection.disconnected",  "timestamp": "2026-10-04T08:47:10Z",  "account_id": 62570,  "location_id": null,  "data": {    "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",    "connected_account_id": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7",    "platform": "instagram",    "display_name": "Jenny Home"  }}

social_connection.archived

Gatilho: o canal foi perdido involuntariamente — a plataforma invalidou o token ou uma execução da reconciliação constatou que o canal não estava mais acessível. Ninguém solicitou isso, o que diferencia esse evento de disconnected.

Campo de dataTipoDescrição
social_profile_idstringA marca à qual o canal estava vinculado.
connected_account_idstringO UUID da conexão.
platformstringNome da plataforma.
display_namestringO nome de exibição do canal. Pode ser null.
reasonstringO motivo da perda do canal. Pode ser null.
JSON
{  "event": "social_connection.archived",  "timestamp": "2026-10-06T02:15:33Z",  "account_id": 62570,  "location_id": null,  "data": {    "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",    "connected_account_id": "2d4e6f80-1c33-4b7a-8e05-9a1b2c3d4e5f",    "platform": "facebook",    "display_name": "Jenny Home & Co.",    "reason": "Access token has been invalidated by the platform."  }}

Análise de avaliações

Resumos programados de avaliações, um evento por local por período.

Ambos os eventos compartilham a mesma estrutura de data:

Campo de dataTipoDescrição
periodstringInício do período, YYYY-MM-DD.
granularitystringdaily ou weekly.
total_reviewsintegerTotal de avaliações do local em todo o histórico.
new_reviews_in_periodintegerAvaliações recebidas durante este período.
average_ratingnumberNota média deste período, com 4 casas decimais. 0.0 quando não houve avaliações.
previous_average_ratingnumberNota média do período anterior. 0.0 quando não há dados anteriores.

Um local sem atividade no período não emite nada, mas o mesmo ocorre com um local cujo snapshot nunca chegou. A ausência de um snapshot é ambígua, e, para esta família, a interpretação de que não houve problema é a menos provável. Ela pode significar: nenhuma atividade; uma entrega que falhou ou excedeu o tempo limite (há uma tentativa e nenhuma nova tentativa); entrega impedida porque a conta não tem direito ao recurso de webhooks, não tem URL configurada, não foi verificada ou está bloqueada; ou, o mais provável neste caso, o limite por minuto descartando parte da rajada como rate_limited.

Nunca registre zero com base na ausência de um snapshot. Confira os dados em GET /locations/{locationId}/review-analytics-overview para o mesmo período e, se essa leitura também falhar, informe o período como indisponível, em vez de zero.

review_analytics.daily_snapshot

Acionamento: a tarefa de resumo diário, uma vez por local por dia.

JSON
{  "event": "review_analytics.daily_snapshot",  "timestamp": "2026-08-25T02:00:00Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "period": "2026-08-24",    "granularity": "daily",    "total_reviews": 1240,    "new_reviews_in_period": 3,    "average_rating": 4.6667,    "previous_average_rating": 5.0  }}

review_analytics.weekly_snapshot

Acionamento: a tarefa de resumo semanal, uma vez por local por semana. period é o primeiro dia da semana que está sendo resumida.

JSON
{  "event": "review_analytics.weekly_snapshot",  "timestamp": "2026-08-24T02:00:00Z",  "account_id": 11073,  "location_id": "279381",  "data": {    "period": "2026-08-17",    "granularity": "weekly",    "total_reviews": 1237,    "new_reviews_in_period": 18,    "average_rating": 4.6123,    "previous_average_rating": 4.5901  }}

Eventos que você pode receber, mas dos quais sua implementação não deve depender

A plataforma emite outras famílias: campanhas de avaliações, classificações, impulsionamentos de publicações em redes sociais, alterações de status de contas de anúncios em redes sociais, ideias de publicações geradas por IA e propriedade do Google Business Profile. Elas não têm um endpoint REST publicado na Listings API, não estão documentadas aqui e suas estruturas não estão cobertas por nenhuma garantia de compatibilidade. Como há uma única URL e nenhuma assinatura por evento, seu manipulador deve ignorar qualquer event que não reconheça e ainda assim retornar 200.