Duplicates Keep Creating in Booqable → Google Contacts Workflow

Hi n8n Community

I’m new to n8n (self-hosted on unRAID) and built this workflow to sync customers from Booqable to Google Contacts:

  1. Trigger: Every 5 minutes (webhook would be ideal, but Booqable won’t allow it).

  2. Fetch: Call Booqable’s /customers endpoint, filtering by lastProcessedTime.

  3. Validate: Skip if both email and phone are missing.

  4. Search: Query Google Contacts with email (or fallback to phone).

  5. Determine Action:

    • action = "update" if contacts found
    • action = "create" otherwise
  6. Branch (IF node):

    • Update branch: PATCH existing contact
    • Create branch: CREATE new contact
  7. Logging for created, updated, and skipped items.

The Problem:
The IF node always takes the create branch, never updating or skipping—even though action is set correctly. I’ve tried boolean flags, optional chaining, type conversion, etc., but still get duplicates every run.

Below is a sanitized export of the workflow JSON. Import it directly into n8n to see the exact setup and help diagnose the branching issue:

Appreciate any help to fix this workflow. Can’t wait to start on more!

Thank you.