Running Quorom

This page states what has been built and tested, not what the design allows. Where something is not supported, it says so, so you can judge the work rather than discover it. The step-by-step guide lives in the repository: docs/setup.md.

What you need

  • A meeting recorder with call history. Gong today. Meetings are the signal — without them there is nothing to reconcile.
  • Salesforce. The stakeholder list is built from Salesforce contacts. Without it you still get the meeting reconciliation and the company coverage, but the ICP verdict reads “not assessed — no CRM configured” and the stakeholder tab says that rather than listing people.
  • PostgreSQL 13 or later, in your environment. It holds the meeting-identity graph.
  • A way to get the code there. Your GitLab and runners, a GitHub Actions pipeline, a container image in your cloud — transport is yours and stays out of the codebase.
  • Optionally, HubSpot, for marketing-contact context.

What is supported today

AreaSupportedNotes
Meeting sourceGongSwappable — one importer fills two tables
CRMSalesforce, any orgField names are resolved per org, never hardcoded
Marketing contactsHubSpotOptional. Absent means no column at all — never a “no”, never a 0
ICP: company sizeEmployee band
ICP: geographyRegion or countryNorth America, EMEA, APAC — no state or city level
ICP: account typeOptional substring gateOff by default
SeniorityTitle matchingC-level, VP, director, founder, manager
DatabasePostgreSQL 13+gen_random_uuid() is built in from 13
DeliveryLocal filesA workbook, a JSON dump and an HTML page
SchedulingNoneThe repo defines no packaging or scheduling
Enrichment providersNone wired upThe pipeline spends nothing

Checked against the code on 25 August 2026. The authoritative version is docs/supported-configuration.md.

No Salesforce managed package required

The pipeline holds no Salesforce custom field name. At setup it describes the Account and Contact objects, matches every field name and label against include and exclude patterns, counts how many records populate each survivor, and stores the candidates in population order. Every query is then built from that map. If nothing resolves for a field, its column reads “not available in this CRM” and the run continues — a field that does not exist would otherwise kill the whole query rather than return an empty column.

What swaps cheaply, and what does not

The meeting source swaps. Everything downstream reads the product database, not Gong. Supporting Fathom, Fireflies, Chorus or anything else means writing one importer that fills two tables.

The CRM does not. Salesforce is read mid-pipeline across three modules. The field map makes it portable across Salesforce orgs; it does not make another CRM work. A team whose primary CRM is HubSpot needs an interface that has not been written.

The boundary

Yours is configuration, secret references and your deployment pipeline. Upstream is all code — read from the public repository and never edited. Your version control holding a copy is fine; your version control being where changes originate is a fork, and a fork can take no update.

Contributions are not accepted and pull requests are turned off. Issues are on: if you are running Quorom and something needs to change, say so rather than patching locally.

Licence

You may run Quorom to produce stakeholder maps for your own organisation, including deploying it in infrastructure you control. You may not sell it on to other people as a hosted or managed service. That restriction is time-limited: four years after a version is first published, it converts to Apache 2.0. The licence is the Business Source License 1.1, which is not an Open Source licence, and the LICENSE file is the terms — this paragraph is not.