Skip to content
Ahmad BukhariBook a 25 min call

ABM engine: Find the missing buying role before planning the next outreach.

Named accounts, five-role buying committees and dated evidence in one place, with outreach planned for the empty seat and never counted as coverage until someone replies. Shown as the workspace for Northfold, a coordination-software company selling to enterprise architecture and engineering firms.

The problem

Named-account programs often track activity without showing whether the relevant buying committee is covered. Several contacts may belong to one function while finance, technical evaluation or the executive sponsor remains absent. This system is designed to combine account evidence, five-role coverage, signals and multithreaded outreach without confusing an activity count with account readiness.

How the system is built

  1. SourcesNamed-account lists, HubSpot contacts and TREG/MONID signals.
  2. IngestionDesigned n8n callbacks and scheduled incremental CRM synchronization.
  3. NormalizationDomain-based account resolution, role mapping and source-ID preservation.
  4. StoragePostgres account graph, committee assignments, signals and engagement ledger.
  5. DecisionsCoverage gaps, signal freshness, ownership and outreach eligibility.
  6. DashboardAccount portfolio, committee map and next-action review.
  7. Write-backsApproved HubSpot associations, tasks and account-status updates.

The dashboard

12 views: Today, Executive summary, Account list, Buying committees, Account brief, Signals, LinkedIn touches, Meetings, Opportunities, Stalled deals, Coverage report, Win-loss review.

The committee map: five seats per account (economic buyer, champion, technical evaluator, user lead, procurement), filled seats with the person and last touch, empty seats with who to reach next.

State lives in the URL (view, filters, date range), records open in drawers with their history, and every action that changes something is written to an activity log and is safe to repeat.

Data model

  • accounts(id, domain, tier, owner_id, crm_id)
  • people(id, account_id, email, title, verification_state)
  • committee_roles(id, account_id, person_id, role, confidence)
  • signals(id, account_id, type, observed_at, expires_at)
  • engagements(id, account_id, person_id, channel, occurred_at)
  • plays(id, account_id, trigger_id, state, approved_by)
  • tasks(id, play_id, owner_id, due_at, state)
  • integration_events(id, source, external_id, processing_state).

Rules in the backend

  1. Each account has five configurable required roles: economic buyer, champion, technical evaluator, operational user and procurement/legal.
  2. Count a role as covered only when a verified person is assigned with recorded evidence; one person may hold multiple roles, but distinct-person coverage is reported separately.
  3. Proposed signal expiry is 30 days unless the source supplies an earlier expiry.
  4. Allow at most one active play per account and trigger version.
  5. Do not advance account readiness solely from email opens or unverified intent signals.

Storage

Recommend Supabase Postgres with tenant and account-assignment RLS. Retain raw signal payloads for 30 days, normalized account evidence for 12 months and audit records for 24 months. Minimize personal fields and mask addresses in client views.

Reliability

Deduplicate signals by provider event ID. Use an outbox for CRM mutations, bounded retries and dead-letter review. Account pages display source-specific freshness, missing role evidence and partial synchronization rather than a single misleading green badge.

Security and access

Administrators configure role requirements; operators research and propose plays; approvers authorize outreach. Clients receive read-only account summaries. Credentials and provider tokens never enter browser bundles.

Cost

Costs depend on account research, contact enrichment, signal access, CRM licensing and orchestration executions. Track cost per researched account and verified committee member separately.

Use it

The window above runs the full workspace. Pause the tour and click through it, or open it full screen.

Technology stack

  • HubSpot
  • Apollo
  • Clay
  • TREG
  • MONID
  • LinkedIn
  • Slack
Source & context

Designed and built by Ahmad Bukhari in November 2026.

The working interface represents named accounts, committee coverage and plays; live signal collection, outreach execution and HubSpot acceptance are designed deployment connections.

Built: 2026-11-03

Map a workflow like this

Start with the handoffs your team already runs and where they break.

Discuss a workflow →