Skip to content

BuildingConnected sync - Bid Board (Opportunities) + webhooks + session bridge

StageBuilding
StatusPartial
Design statusIn review
EstimateL
ConfidenceMedium
LinearPIN-492 ↗ PIN-152 ↗
Linear statusDone
CycleC14-C15
DesignDesign ↗
Linear epicData Ingestion & Integrations
ModuleSmart Import ↗

Priority: High

Scope

Syncs BuildingConnected bid invites into Cara's Bid Board via webhook push (manual sync as fallback), upserting by external ID so re-syncs never create duplicates. A session-bridge captures a one-time BC login, then automatically fetches every attached drawing/spec for new bid invites into blob storage via BC's internal API, feeding the same AI-takeoff pipeline as manual uploads. (Source: PIN-492, PIN-152.)

Acceptance criteria

  • BC bid packages sync into the bid-invites inbox (not the confirmed bid list) as source-tracked, deep-linked records
  • Webhook push creates/updates invites in real time; manual sync remains available as fallback
  • Re-sync upserts by external ID — no duplicate invites
  • Sync actions permission-gated to Exec + Admin, with created/updated/skipped feedback
  • One-time "Connect BC session" capture, kept alive in the background so it never needs re-login
  • New bid invites automatically pull attached drawings/specs into blob storage and trigger the AI takeoff pipeline
  • Manual-upload path remains available if the BC session is expired or disconnected

Conor's comments

Do we have all functionality, included submitting proposals, getting leveling scope and submitting proposals? Needs testing & sign off after 8/19

Notes

Monorepo-only integration (no cara-docs/design source); subscription-gated; distinct from the launch-gate BC bid e2e row

Open question for Conor

-