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.
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]]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.
# 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.
client.workflows.listings_health_audit(location_id: str | int) -> APIObjectSustituye las llamadas a listings.premium, listings.voice y listings.duplicates para la misma ubicación, con los resultados prémium contados por syncStatus.
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.
client.workflows.weekly_reputation_report( location_id: str | int, *, start_date: str | None = None, end_date: str | None = None,) -> APIObjectstart_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.
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
- Reseñas: las llamadas para obtener listas, responder y consultar análisis que realizan estos flujos de trabajo
- Fichas: llamadas para fichas prémium, fichas de voz y duplicados
- Análisis: métricas de los perfiles de Google y Bing
- Responder a reseñas: reglas de respuesta y límites por sitio
- Análisis de reseñas: qué significan las cifras del resumen y de la evolución temporal
- Buscar y corregir errores en las fichas: qué hacer con la lista
issues