diff --git a/connector-superoffice/worker.py b/connector-superoffice/worker.py index 9eda3be05..8b166010f 100644 --- a/connector-superoffice/worker.py +++ b/connector-superoffice/worker.py @@ -40,24 +40,24 @@ def clean_text_for_so(text, limit=200): return str(text).strip()[:limit] def process_job(job, so_client: SuperOfficeClient, queue: JobQueue): - """ - Core logic for processing a single job. - Returns: (STATUS, MESSAGE) - STATUS: 'SUCCESS', 'SKIPPED', 'DELETED', 'RETRY', 'FAILED' - """ - - logger.info(f"--- [WORKER v1.9.5] Processing Job {job['id']} ({job['event_type']}) ---") - + logger.info(f"--- [WORKER v1.9.7] Processing Job {job['id']} ({job['event_type']}) ---") payload = job['payload'] - event_low = job['event_type'].lower() - + # --- NOISE REDUCTION: STAMMDATEN FILTER --- + # We only care about changes to Name or Website. + # Everything else (like UDF updates) should NOT trigger a re-analysis. + changes = [c.lower() for c in payload.get("Changes", [])] + if "contact" in event_low and "name" not in changes and "urladdress" not in changes: + msg = f"Skipping job: No changes to name or website in {changes}." + logger.info(f"⏭️ {msg}") + return ("SKIPPED", msg) + # ------------------------------------------ # --- CIRCUIT BREAKER: DETECT ECHOES ---