Flussi di lavoro

Funzioni ausiliarie composite che eseguono più chiamate SDK e restituiscono un unico risultato combinato tramite client.workflows.

Tutti i metodi dei flussi di lavoro si trovano in client.workflows. Ciascuno sostituisce una sequenza di normali chiamate SDK che altrimenti dovresti scrivere tu e restituisce un unico risultato combinato, assemblato sul client. Un flusso di lavoro non corrisponde a un singolo endpoint REST, quindi le chiavi del risultato sono nomi definiti dall'SDK, non nomi di campi trasmessi in una risposta REST.

Poiché un flusso di lavoro esegue più chiamate, la chiave API che usa deve avere accesso a ogni risorsa coinvolta, e ogni chiamata al flusso di lavoro viene conteggiata ai fini del limite di frequenza una volta per ciascuna richiesta sottostante. I metodi accettano un parametro location_id, che può contenere ID numerici o codificati in base64: vedi ID delle sedi.


workflows.auto_reply_to_reviews

Rispondi alle recensioni di una sede usando un modello, con una sola chiamata. Usalo per mantenere alta la percentuale di risposte alle recensioni positive mentre gestisci manualmente le altre.

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]]
ParametroTipoDescrizione
location_idstr | intSede da elaborare.
templatestrTesto della risposta per le recensioni che soddisfano i criteri. {rating} viene sostituito con la valutazione della recensione.
min_ratingintRispondi solo alle recensioni con una valutazione pari o superiore a questa. Il valore predefinito è 4.
only_unansweredboolSalta le recensioni che hanno già una risposta. Il valore predefinito è True.
dry_runboolRestituisci le recensioni a cui verrebbe data una risposta senza pubblicare nulla. Il valore predefinito è False.

Sostituisce reviews.list, scorrendone le pagine con auto_paging_iter(), seguito da una chiamata a reviews.respond per ogni recensione che soddisfa entrambi i filtri.

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

Restituisce un semplice elenco di dict, uno per ogni recensione su cui ha agito, ciascuno con id, rating, reply e status. Eseguilo prima con dry_run=True: gli elementi vengono restituiti con status impostato su dry_run, così puoi controllare la selezione prima che venga pubblicata qualsiasi risposta.


workflows.listings_health_audit

Ottieni una panoramica delle schede di una sede con una sola chiamata: schede premium, schede per assistenti vocali, duplicati e un punteggio. Usalo per un pannello sullo stato delle schede di una singola sede al posto di tre chiamate separate.

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

Sostituisce listings.premium, listings.voice e listings.duplicates per la stessa sede, contando i risultati premium in base a 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"))

Restituisce un oggetto APIObject con location_id, premium, voice, duplicates, synced_count, issue_count, issues e health_score. health_score è la percentuale di schede premium il cui syncStatus è SYNCED, espressa come numero intero, e vale 0 quando non ci sono schede premium. issues contiene le schede premium il cui syncStatus non è né SYNCED né assente.


workflows.weekly_reputation_report

Recupera recensioni, analisi delle recensioni, analisi del profilo e stato di sincronizzazione delle schede per una sede in un intervallo di date. Usalo per un report periodico anziché per una dashboard in tempo reale, poiché esegue cinque chiamate.

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 sono stringhe YYYY-MM-DD ed entrambe sono facoltative. Sostituisce reviews.analytics.overview, reviews.list con first=50, analytics.google, analytics.bing e listings.premium, passando l'intervallo di date a ogni chiamata che lo accetta.

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

Restituisce un oggetto APIObject con location_id, review_summary (la panoramica delle analisi delle recensioni), recent_reviews (fino a 50 recensioni nell'intervallo), analytics (un dict con google e bing) e listings_health (un dict con total, synced e sync_rate). sync_rate è una stringa formattata come percentuale e vale N/A quando la sede non ha schede premium.


Vedi anche