Flujos de trabajo

Funciones auxiliares compuestas que ejecutan varias llamadas al SDK y devuelven un único resultado combinado mediante client.workflows.

Todos los métodos de flujo de trabajo están en client.workflows. Cada uno sustituye una secuencia de llamadas habituales al SDK que, de otro modo, tendrías que escribir tú, y devuelve un único resultado combinado que se construye en el cliente. No hay un único endpoint REST detrás de un flujo de trabajo, por lo que las claves del resultado son nombres propios del SDK, no nombres de campos de una respuesta REST.

Como un flujo de trabajo realiza varias llamadas, la clave de API con la que se ejecuta necesita acceso a todos los recursos que utiliza, y cada solicitud subyacente de una llamada al flujo de trabajo cuenta para tu límite de solicitudes. Los métodos reciben un location_id, que acepta identificadores numéricos o codificados en base64; consulta Identificadores de ubicación.


workflows.auto_reply_to_reviews

Responde a las reseñas de una ubicación a partir de una plantilla con una sola llamada. Úsalo para mantener una tasa alta de respuesta a las reseñas positivas mientras gestionas las demás 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ámetroTipoDescripción
location_idstr | intUbicación que se va a procesar.
templatestrTexto de respuesta para las reseñas que cumplen los criterios. {rating} se sustituye por la puntuación de la reseña.
min_ratingintResponde solo a las reseñas con esta puntuación o una superior. El valor predeterminado es 4.
only_unansweredboolOmite las reseñas que ya tienen una respuesta. El valor predeterminado es True.
dry_runboolDevuelve las reseñas a las que se respondería sin publicar las respuestas. El valor predeterminado es False.

Sustituye las llamadas a reviews.list para recorrer sus páginas con auto_paging_iter(), seguidas de una llamada a reviews.respond por cada reseña que cumpla ambos 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")

Devuelve una lista simple de diccionarios, uno por cada reseña sobre la que haya actuado, cada uno con id, rating, reply y status. Ejecútalo primero con dry_run=True: las entradas se devuelven con status establecido en dry_run para que puedas comprobar la selección antes de que se publique cualquier respuesta.


workflows.listings_health_audit

Obtén una visión general de las fichas de una ubicación con una sola llamada: fichas prémium, fichas de voz, duplicados y una puntuación. Úsalo para un panel del estado de las fichas de cada ubicación en lugar de hacer tres llamadas independientes.

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

Sustituye las llamadas a listings.premium, listings.voice y listings.duplicates para la misma ubicación, con los resultados prémium 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"))

Devuelve un APIObject con location_id, premium, voice, duplicates, synced_count, issue_count, issues y health_score. health_score es la proporción de fichas prémium cuyo syncStatus es SYNCED, expresada como un porcentaje entero, y es 0 cuando no hay fichas prémium. issues contiene las fichas prémium cuyo syncStatus está presente y es distinto de SYNCED.


workflows.weekly_reputation_report

Recupera reseñas, análisis de reseñas, análisis del perfil y el estado de sincronización de las fichas de una ubicación durante un intervalo de fechas. Úsalo para un informe periódico en lugar de un panel en tiempo real, ya que realiza cinco llamadas.

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

start_date y end_date son cadenas en formato YYYY-MM-DD, y ambas son opcionales. Sustituye las llamadas a reviews.analytics.overview, reviews.list con first=50, analytics.google, analytics.bing y listings.premium, pasando el intervalo de fechas a cada llamada que lo acepte.

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"))

Devuelve un APIObject con location_id, review_summary (el resumen de los análisis de reseñas), recent_reviews (hasta 50 reseñas del intervalo), analytics (un diccionario con google y bing) y listings_health (un diccionario con total, synced y sync_rate). sync_rate es una cadena con formato de porcentaje, y es N/A cuando la ubicación no tiene fichas prémium.


Consulta también