Fluxos de trabalho

Funções auxiliares compostas que executam várias chamadas ao SDK e retornam um único resultado combinado, via client.workflows.

Todos os métodos de fluxo de trabalho estão em client.workflows. Cada um substitui uma sequência de chamadas comuns ao SDK que você precisaria escrever e retorna um único resultado combinado, montado no cliente. Não há um único endpoint REST por trás de um fluxo de trabalho, portanto as chaves do resultado são nomes definidos pelo próprio SDK, e não nomes de campos transmitidos em uma resposta REST.

Como um fluxo de trabalho faz várias chamadas, a chave de API usada na execução precisa ter acesso a todos os recursos que o fluxo de trabalho acessa, e cada requisição subjacente conta individualmente para o seu limite de requisições. Os métodos recebem um location_id, que aceita IDs numéricos ou codificados em base64; consulte IDs de locais.


workflows.auto_reply_to_reviews

Responda às avaliações de um local usando um modelo, em uma única chamada. Use esse método para manter a taxa de resposta às avaliações positivas enquanto você cuida das demais manualmente.

Python
client.workflows.auto_reply_to_reviews(    location_id: str | int,    *,    template: str = "Thank you for your feedback!",    min_rating: int = 4,    only_unanswered: bool = True,    dry_run: bool = False,) -> list[dict[str, Any]]
ParâmetroTipoDescrição
location_idstr | intLocal a processar.
templatestrTexto da resposta para as avaliações que atendem aos critérios. {rating} é substituído pela nota da avaliação.
min_ratingintResponda apenas às avaliações com esta nota ou uma nota superior. O padrão é 4.
only_unansweredboolIgnore as avaliações que já têm uma resposta. O padrão é True.
dry_runboolRetorne as avaliações que receberiam uma resposta, sem publicar as respostas. O padrão é False.

Esse método substitui a paginação de reviews.list com auto_paging_iter(), seguida de uma chamada a reviews.respond para cada avaliação que passa pelos dois filtros.

Python
# See what would be sent, without postingplan = client.workflows.auto_reply_to_reviews(  16808,  template="Thanks for the {rating}-star review!",  min_rating=4,  dry_run=True,)for entry in plan:  print(entry["id"], entry["rating"], entry["status"]) # Then post for realresults = client.workflows.auto_reply_to_reviews(16808, min_rating=4)print(f"Replied to {len(results)} reviews")

Retorna uma lista simples de dicts, um para cada avaliação em que o método atuou, cada um com id, rating, reply e status. Execute primeiro com dry_run=True: as entradas são retornadas com status definido como dry_run para que você possa conferir a seleção antes que qualquer resposta seja publicada.


workflows.listings_health_audit

Obtenha uma visão geral das listagens de um local em uma única chamada: listagens premium, listagens de voz, duplicatas e uma pontuação. Use esse método para um painel de integridade por local, em vez de fazer três chamadas separadas.

Python
client.workflows.listings_health_audit(location_id: str | int) -> APIObject

Esse método substitui listings.premium, listings.voice e listings.duplicates para o mesmo local, com os resultados premium contados por syncStatus.

Python
audit = client.workflows.listings_health_audit(16808)print(f"Health score: {audit.health_score}%")print(f"Synced: {audit.synced_count} of {len(audit.premium)}")print(f"Duplicates found: {len(audit.duplicates)}")for issue in audit.issues:  print(issue.get("site"), issue.get("syncStatus"))

Retorna um APIObject com location_id, premium, voice, duplicates, synced_count, issue_count, issues e health_score. health_score é a proporção de listagens premium cujo syncStatus é SYNCED, expressa como uma porcentagem inteira, e tem o valor 0 quando não há listagens premium. issues contém as listagens premium cujo syncStatus está presente e é diferente de SYNCED.


workflows.weekly_reputation_report

Obtenha avaliações, análises de avaliações, análises de perfil e o estado de sincronização das listagens de um local em um intervalo de datas. Use esse método para um relatório recorrente, em vez de um painel em tempo real, pois ele faz cinco chamadas.

Python
client.workflows.weekly_reputation_report(    location_id: str | int,    *,    start_date: str | None = None,    end_date: str | None = None,) -> APIObject

start_date e end_date são strings no formato YYYY-MM-DD, e ambos são opcionais. Esse método substitui reviews.analytics.overview, reviews.list com first=50, analytics.google, analytics.bing e listings.premium, repassando o intervalo de datas a cada chamada que o aceita.

Python
report = client.workflows.weekly_reputation_report(  16808,  start_date="2026-09-01",  end_date="2026-09-07",)print(report.review_summary.get("averageRating"))print(report.analytics.get("google", {}).get("views"))print(report.listings_health.get("sync_rate"))

Retorna um APIObject com location_id, review_summary (a visão geral das análises de avaliações), recent_reviews (até 50 avaliações no intervalo), analytics (um dict com google e bing) e listings_health (um dict com total, synced e sync_rate). sync_rate é uma string formatada como porcentagem e tem o valor N/A quando o local não tem listagens premium.


Veja também