REW + FUB BRIDGE
Webhook-based bidirectional sync between Real Estate Webmasters and Follow Up Boss. Lossless field mapping, dead-letter queue, full audit log.
OVERVIEW.
Most teams running both REW and FUB end up with duplicate leads, lost notes, and silent sync failures. This bridge gives you a single declarative mapping file, a managed webhook bus, and a dead-letter queue you can replay. Run it as a long-lived service or trigger on demand.
INSTALL.
# Run the bootstrap npx @ballistic/rew-fub init # Or via Docker docker run -p "8080:8080" \ --env-file .env \ ghcr.io/ballisticleads/rew-fub:latest
FEATURES.
BIDIRECTIONAL
Changes in either system propagate to the other. Conflict resolution via last-write-wins or custom strategy.
FIELD MAPPING
Declarative YAML maps any source field to any destination field. Transforms via JSONata expressions.
DEAD-LETTER QUEUE
Failed syncs land in a DLQ. Inspect, fix, and replay from the CLI without losing leads.
AUDIT LOG
Every sync event is logged with before / after state. Export to S3, Datadog, or your own SIEM.
RATE LIMITED
Respects both APIs’ limits. Backoff, retry with jitter, and burst tolerance built in.
TYPED
Full TypeScript types for REW and FUB schemas. Map fields with autocomplete, not guesswork.
QUICKSTART.
# Map REW lead -> FUB person source: rew target: fub mapping: firstName: "$.first_name" lastName: "$.last_name" emails: "[{ value: $.email, type: 'home' }]" tags: "$append($.tags, ['rew-import'])" source: "REW / " & $.lead_source on_conflict: newest_wins dlq: s3://ballistic-dlq/rew-fub/
CONFIGURATION.
| KEY | TYPE | DESCRIPTION |
|---|---|---|
| REW_API_KEY REQ | string | API key from Real Estate Webmasters admin. Read + write scopes. |
| FUB_API_KEY REQ | string | Follow Up Boss API key. Generated under Admin / API. |
| MAPPING_FILE REQ | path | Path to your mapping YAML. See examples/ in the repo. |
| WEBHOOK_PORT | number | HTTP port for the inbound webhook bus. Defaults to 8080. |
| DLQ_TARGET | string | Destination for failed events. s3://, file://, or postgres:// supported. |
| LOG_LEVEL | "debug" | "info" | "warn" | "error" | Verbosity. Defaults to "info". |
USE CASES.
DUAL-CRM TEAMS
Marketing in REW, sales in FUB. Keep both in lockstep without manual exports.
MIGRATIONS
Move historic data between systems with full fidelity. Run as a one-shot batch.
BACKUP MIRROR
Treat one CRM as primary, the other as a hot mirror. Failover with zero data loss.
ATTRIBUTION
Stamp REW campaign source onto FUB person records. Tie every closed deal back to the channel.