Sync GCP Pub/Sub with HubSpot using n8n
Merge GCP Pub/Sub data into HubSpot as contacts, companies and custom objects.
Key takeaways
- Scope GCP Pub/Sub credentials tightly, per environment.
- Prefer webhooks over polling wherever GCP Pub/Sub supports them.
- Make every workflow idempotent — GCP Pub/Sub will retry, and so will you.
- Version workflow JSON in Git, not just inside n8n.
This is the definitive n8n guide to GCP Pub/Sub for queue teams. You'll learn the exact node-by-node setup, the patterns that survive production, and the pitfalls that trip up most first-time builders. Every step is copy-pasteable.
Why this matters for GCP Pub/Sub
Most GCP Pub/Sub automations fail not because n8n can't handle the load — it can — but because the auth, retries and idempotency were bolted on after launch. Here we do it right from step one.
The workflows below have been tested against real GCP Pub/Sub accounts with volume. They favour clarity over cleverness, so you can hand them off to a teammate on day two.
- Uses only stock n8n nodes plus HTTP Request
- Idempotent by design — safe to replay
- Alerts on failure to a channel your team watches
Setup and credentials
Open Credentials → New → GCP Pub/Sub. Use a dedicated service account, not a personal token. Scope it to the minimum permissions your workflow needs — you can widen later, you cannot easily narrow.
Test the credentials against a read-only endpoint before you save. A bad credential is the single most common cause of silent failure in production.
The workflow, step by step
Drag the GCP Pub/Sub trigger onto the canvas. Set the polling interval or, better, wire it to a webhook. Add a Set node right after to normalise the payload — you'll thank yourself when the schema changes.
Downstream, add a Merge or IF node to branch on record type. Keep each branch short — a workflow that fits on one screen is a workflow you can debug at 3am.
- Trigger
- Normalise (Set)
- Branch (IF / Switch)
- Act
- Log
- Alert on error
Production hardening
Turn on the Error Workflow so every failure lands in your incident channel with the payload attached. Add a dedupe key based on the GCP Pub/Sub record ID and store recent IDs in Redis or Postgres for 24 hours.
Version your workflow. Export the JSON on every meaningful change and commit it to Git — n8n's built-in versioning is convenient, but Git is the source of truth your ops team will trust.
Frequently asked questions
- Do I need a paid GCP Pub/Sub plan?
- Most n8n workflows work on GCP Pub/Sub's free or lowest paid tier. Rate limits, not features, are the usual blocker.
- How do I test safely?
- Create a sandbox GCP Pub/Sub account or workspace. Never point a test workflow at production GCP Pub/Sub data — even a "read-only" workflow can hit quotas.
- Can I self-host n8n for this?
- Yes. For GCP Pub/Sub workloads under ~10k events/day a single n8n instance is fine. Beyond that, switch to queue mode with Redis.
- Where should logs go?
- Send workflow logs to your existing observability stack — Datadog, Grafana or a Postgres table you already query.