CUSTOMER SUPPORT

Build a customer identity graph in Postgres to flag cross-channel duplicate threads

On a schedule, scans recent Zendesk and Front threads, resolves them to a single customer via an identity map in Postgres.

CategoryCustomer Support
Enginesim
Difficultyadvanced
Triggerschedule
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerHourly schedule
  • ActionPull recent threads from Zendesk and FrontZendeskZendesk
  • ActionUpsert requester identifiers into identity graphPostgreSQLPostgres
  • LogicGroup by identity, flag cross-channel duplicate clusters
  • OutputWrite candidate merges to Postgres review tablePostgreSQLPostgres

What it does

Maintains a Postgres identity graph that ties together a customer's email addresses and chat handles, then uses it to surface clusters of conversations that are probably the same person on different channels — even when names or addresses differ slightly.

When to use it

Use it when duplicates are hard to detect because customers use multiple emails or aliases, and you want an audited list of candidate merges rather than automatic merging.

How it works

  1. 1A schedule (e.g. hourly) triggers the run.
  2. 2The flow pulls recent threads from both Zendesk and Front.
  3. 3It upserts each requester's identifiers into a Postgres identity table, linking aliases that share a verified email or phone.
  4. 4A logic step groups open threads by resolved identity and flags clusters with more than one open thread spanning channels.
  5. 5It writes the candidate duplicate clusters back to a Postgres review table with confidence scores and source links for an agent to action.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect ZendeskTickets, queues, knowledge base.
  2. 2
    Connect FrontShared inbox, conversations.
  3. 3
    Connect PostgresAny Postgres URL — query, write, migrate.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.