Revenue data quality
Reconcile duplicate records, preview bulk cleanup, restore historical Deal truth, review enrichment evidence, capture mail attachments, and export complete snapshots from Revenue → Data quality.
Merge and archive core records
Genosyn scans every company at startup and then every six hours on a leased background schedule. Run Scan duplicates when you want an immediate pass across Accounts, Contacts, Deals, and Partnerships. Detection uses exact or aliased domains, normalized company names, Contact email aliases, website redirects, shared Stripe customer IDs, and similar Deal titles within one Account. It only proposes candidates; it never merges automatically.
- Choose which candidate is the surviving record.
- Review every conflicting field and the counts of relationships and custom values that will move. Choose the source or survivor value for each conflict; coupled ownership and Deal status fields are validated together before the merge can commit.
- Type the duplicate record's displayed label and confirm.
Genosyn moves Contacts, Deals, Activities, follow-ups, Documents, buying committees, Partnership contacts, finance references, and compatible custom values in one transaction. It keeps names, domains, emails, websites, original IDs, and source IDs as searchable aliases. The duplicate becomes an archived tombstone that redirects callers to the survivor instead of disappearing.
Archive and restore are symmetrical across Accounts, Contacts, Deals, and Partnerships. Archived records stay out of default lists while their timelines and links remain resolvable. A tombstone created by a merge cannot be restored directly; use the guarded merge undo so references cannot split between the old and surviving records.
Bulk record and follow-up operations
Select records or use a saved filter, choose an action, and press Preview. The dry run resolves the same population as the write, validates every row, and reports valid, skipped, and failed records without changing data.
- Core records
- Assign a Member or AI Employee owner, change Contact lifecycle or Account status, update allowed standard or typed custom fields, and archive or restore selected records.
- Follow-ups
- Complete, cancel, reassign, reprioritize, or reschedule tasks and linked Deal or Partnership follow-up dates.
- Safety
- Committed requests use an idempotency key, return a result for every row, preserve partial failures, write audit history, and can be rolled back.
The Follow-ups page also supports selection and bulk triage. Filter by any assignee or unassigned, priority, linked resource type and ID, status, due-date range, age, Deal Stage or status, and whether the linked Deal is closed. This makes rules such as "cancel stale follow-ups on closed-lost Deals" previewable before they are applied.
Large writes run as durable background jobs. The preview freezes the selected IDs, the job reports progress and row-level reconciliation, and queued or interrupted work resumes after restart. Choose atomic when every row must validate or partial when valid rows may proceed and failures should be exported for repair.
Set standard fields accepts one JSON patch for every selected record. Identity collisions, Account and Contact links, controlled Deal sources, Partnership classifications, currencies, and dates are validated before writing. Notes can be replaced, appended, or cleared. Deal amount, owner, and expected-close changes also append immutable history events, so bulk cleanup cannot silently rewrite reporting truth.
Historical Deal truth and funnel reporting
Start with Deal history coverage. It shows each Deal's completeness, native, imported, and Activity-backfill event counts, source-import references, and a recommendation. This separates a genuinely missing pre-migration ledger from a Deal whose lifecycle Activities can be converted safely. The page loads the complete bounded inventory before enabling selection and refuses a population that changes between pages, so Select recommended cannot silently omit later Deals.
Use Historical Deal import for original creation timestamps, Deal Stage transitions, won or lost timestamps, amount and currency changes, expected-close changes, lost reasons, and owner changes. Name the source system, give every source record and event a stable ID, set its effective timestamp, and label each Deal's history as complete, partial, or snapshot_only. Source identity stays stable across batches, so replaying an event is idempotent. Events retain their original timestamps rather than pretending the migration happened today.
To reuse existing immutable Deal Activities, select explicit Deal IDs and preview Backfill Deal activities first. An unscoped commit is refused. A migration-time deal_created Activity becomes a snapshot, not a fabricated original creation boundary; import the real source history first when coverage recommends it. Replaying the same scoped backfill is idempotent.
Change events must carry a real boundary: amount events need a before or after amount or currency, owner events need a before or after Member or AI Employee owner, and expected-close events need a before or after date. Use an explicit null after value when a source event cleared an owner or date.
Preview, commit, and undo
- Paste the import contract and choose Preview import. Genosyn reports every accepted, rejected, chronologically reordered, conflicting, and duplicate source event without writing.
- Resolve unknown Deal Stages, broken stage boundaries, missing lost reasons, or timestamps that overlap native post-migration history.
- Choose Import accepted events. The batch preserves source actor and metadata provenance and appears under Audit and undo.
Revenue → Insights uses these events for entered-stage and progressed-stage counts, original-cohort conversion, period won/lost counts, median time in stage, and median sales cycle. Complete histories participate in cohort conversion. Partial histories contribute only metrics whose entry and exit boundaries are known. Snapshot-only and history-free Deals stay in current totals but never enter historical transition metrics. Every funnel shows all four coverage counts so pre-cutover gaps stay explicit.
Controlled enrichment and provenance
Domain proposals come only from verified business email evidence or Account websites. Public mailbox providers are rejected, known host aliases and subdomains are normalized, website redirects are followed through the safe outbound-request guard, and name mismatch lowers confidence. A collision creates a merge candidate. A proposal never replaces a verified domain automatically.
Members with Finance access can open Commercial-value backlog to load the complete bounded set of open zero-value Deals before proposing anything. Each row explains whether it has a Finance candidate, a linked Stripe customer, an ambiguous Account with several zero-value Deals, an existing proposal awaiting review, or no usable evidence. Choose Select Finance candidates or Select Stripe candidates, review the selected Deals, then choose a connected Stripe Connection when Stripe is the evidence source. Both actions create proposals only.
Commercial-value proposals can use paid or sent Finance invoices, accepted estimates, Account ACV, verified Stripe subscriptions, reviewed proposals or quotes, and confirmed email terms. Values carry currency, one-time or recurring shape, billing interval, quantity or seats, MRR, ARR, ACV, source, and confidence. Unverified prose is rejected. Only a human Member can accept or reject a commercial-value proposal, and acceptance is refused if the Deal changed after the proposal was generated. Accepting a current value updates the Deal and writes a real amount-history event.
Bring-your-own-key firmographics
- Open Settings → Integrations, choose People Data Labs, and create a Connection with your own API key.
- Return to Revenue → Data quality → Firmographic lookup, choose that Connection and optionally paste up to 100 Account IDs.
- Choose Preview. Preview does not call the provider: it shows complete, cached, and eligible Accounts plus the maximum number of external requests.
- Choose Propose evidence, then accept or reject each returned field in the normal evidence queue.
Matches can propose Account domain, website, industry, employee count, headquarters, and parent-company name and domain. Nothing is applied automatically. Matches and no-matches are cached for 30 days by default, and repeated evidence is deduplicated. A domain collision is sent to the merge workflow instead of overwriting another Account.
Every derived field keeps its source email, document, Integration, import, or manual evidence; extracted value and date; confidence; last-verified date; and human-confirmed status. Members accept, reject, or explicitly supersede a previously verified value in the evidence queue. Typed custom fields show the current source and verification state beside the value; older values are backfilled honestly as unverified rather than assigned an invented source.
Revenue document capture
Gmail sync automatically detects relevant attachments and proposes proposal, RFP, contract, security questionnaire, and pricing-file links as each message is stored. It suggests the Account, Contact, Deal, or Partnership from message participants and Deal context. Source Gmail message and attachment IDs prevent repeat candidates; content hashes prevent duplicate files.
High-confidence links still wait for review. For an ambiguous file, choose the resource type and paste its record ID before capture. The file is downloaded only when accepted, and its message, attachment index, hash, classification, and reviewer remain as provenance. Use Scan mail attachments for a historical mailbox backfill.
Exports and import reconciliation
Snapshot exports cover Accounts, Contacts, Deals, Partnerships, Partnership contacts, buying committees, follow-ups, Documents, Deal Stage definitions, custom-field definitions and values, import reconciliation, immutable Deal history, field evidence, duplicate candidates, operation audit rows, and Gmail document candidates. CSV and JSON endpoints use a frozen snapshot boundary and paginated cursors or offsets, so operators can continue until the export is complete without later writes moving records between pages. AI Employees need the source Mail Account ID and a read Grant to that exact mailbox to export Gmail document candidates; Revenue access alone does not reveal mailbox-derived metadata.
Import history now has a lightweight summary listing, lookup by Import ID, filters for source, date, status, and resource, and separately paginated row decisions. Download any reconciliation as CSV or JSON, including a focused failed, skipped, or duplicate export. Row filters include action, resource, error text, source ID, and native ID. Opening Report fetches only the first page of decisions and pages through the rest without loading the legacy payload.
Related workflows
- Revenue operations for daily follow-ups, Imports, custom fields, Partnerships, and Documents.
- Revenue Insights for report semantics.
- Customers for the shared Account and finance record.