em-account-intelligence v0.4.2 Accounts

Building structured intelligence on accounts and stakeholders. Profiles calls and emails into signals, auto-writes safe field updates, queues judgement-tier changes as review drafts and applies approved ones, logs conversations, and rebuilds Person Profiles.

Problem it solves: stakeholder and engagement intelligence is scattered across calls and emails, and keeping Notion current is manual. This splits updates into two lanes - deterministic auto-writes vs human-reviewed judgement drafts - with provenance and audit on every change.

Tier-split pipeline profilers (call / email) profile-writer (auto-tier) / draft-emitter (judgement) human review draft-applier
em-call-profilerWorkerRead-onlyLight · ~5-20k

Pulls a Fireflies transcript and emits structured profile signals as one JSON object - meeting type, attendees, summary, sentiment, signals, asks, action items, and proposed field changes (each with a confidence and rationale). Never writes.

When to use it
profile this callextract signals from this meetingwhat did this meeting tell us
How it works
  1. Fetch the transcriptPulls the full transcript and summary for the given Fireflies id.
  2. Classify type and attendeesDetects the meeting type from the canonical set and extracts the attendee list with emails.
  3. Extract signals and sentimentScores sentiment, detects signals from the taxonomy, and pulls verbatim quotes, decisions, and risks/opportunities.
  4. Capture asks and action itemsExtracts stakeholder asks and EM-owned action items with owners and due dates.
  5. Propose field changes with confidenceProposes profile field updates only where the transcript evidence is direct, each carrying a 0-1 confidence and a rationale.
Example
You say
"profile this call" - a Fireflies id for a sync between an Acme Robotics stakeholder and Alex Rivera: praise for on-time delivery, a flagged crew expansion next quarter, and a request for a Q3 capacity plan by Friday.
You get back
A JSON profile: meeting type Status Sync, sentiment Promoter, signals [relationship-positive, expansion], an ask ("send Q3 capacity plan by Friday"), Alex's action items, and proposed field changes each with a confidence score - written nowhere, just returned.

Gotcha: It is read-only - it never writes to Notion; its JSON is consumed downstream by the profile writer.

Gotcha: It never invents data - if the transcript is silent on a field, that field is omitted entirely.

Reference - what it brings, its process, and what it needs
BringsConverts a raw meeting into machine-readable intelligence; nothing gets written on weak evidence because every proposal carries confidence.
Process
  1. Fetch transcript; detect meeting type & attendees.
  2. Score sentiment; detect taxonomy signals.
  3. Pull asks / action items.
  4. Propose changes with confidence + rationale.
NeedsFirefliessignal taxonomy
em-email-profilerWorkerRead-onlyLight · ~5-20k

The same output shape as the call profiler, but reads an Outlook thread - tuned for email noise (out-of-office, calendar confirms, automated mailers, reply storms). Scores sentiment more conservatively since text loses tone.

When to use it
profile this email thread
Reference - what it brings, its process, and what it needs
BringsExtends the same signal pipeline to email so inbox traffic feeds the profile machinery - without polluting it with automated noise.
Process
  1. Apply noise filters (drop / down-weight automated mail).
  2. Extract signals with the shared taxonomy.
  3. Score conservatively; require body corroboration.
NeedsMicrosoft 365noise filters
em-profile-writerWorkerMedium · ~20-80k

Applies a list of auto-tier field changes to Stakeholders - last touch, channel, meeting / email counts, recent topics, open asks. Deterministic, no LLM reasoning; idempotent; carries source link + confidence; logs to the changelog. Refuses judgement fields.

When to use it
apply these auto-tier changes
Reference - what it brings, its process, and what it needs
BringsKeeps low-judgement facts current automatically and safely - it can't silently corrupt strategic data because it won't touch it.
Process
  1. Per change, fetch the target; honor "Skip auto-update".
  2. Verify the field is auto-tier (else skip / error).
  3. Apply Set / Append / Increment idempotently.
  4. Log to the Account Changelog.
NeedsNotion MCPstakeholders_dbchangelog
em-conversation-log-writerWorkerMedium · ~20-80k

Creates one structured row in an engagement's Conversation Log - rendering a standard body (Summary, Sentiment, What they said, Feedback, Signals, Action items) and ticking flag properties (Has feedback / risk / expansion). Idempotent on date + source.

When to use it
log this conversation
Reference - what it brings, its process, and what it needs
BringsEvery call / email gets a durable, consistently formatted record on the engagement timeline with risk flags pre-ticked for fast scanning.
Process
  1. Resolve the engagement's conversation log DB.
  2. Check for an existing row by source link.
  3. Render the body; set properties & flags; create.
NeedsNotion MCPconversation_log_db
em-comm-plan-writerUser skillLight · ~5-20k

Keeps an account's communication-plan touchpoints current from evidence already on the platform - derives last-contact dates from the logged conversation log and next-due dates from each touchpoint's cadence, previews a diff table, and writes only the changed keys per approved row so it never clobbers a touchpoint.

When to use it
s stakeholders\
Reference - what it brings, its process, and what it needs
BringsThe comm plan reflects what actually happened instead of drifting stale, without the EM re-typing dates the platform already knows.
Process
  1. Read the conversation log and the comm plan header/touchpoints.
  2. Derive last-contact and next-due dates per touchpoint.
  3. Preview the diff (current vs proposed, with evidence).
  4. On explicit yes, upsert each approved row and log the changelog entry.
NeedsBashReadem_db.comm_planem_db.conversation.board
em-stakeholder-mapperUser skillLight · ~5-20k

Maps and qualifies a client stakeholder for delivery-side governance using MEDDICC plus the Mendelow power/interest grid - asks the MEDDICC questions as gates (refuses a claimed champion with no recent proof, an economic buyer with no answer to "who can actually spend?"), then records the confirmed answers.

Reference - what it brings, its process, and what it needs
BringsA qualified, evidence-backed stakeholder map instead of a guessed org chart - power/interest drives a real engagement strategy, not a hunch.
Process
  1. Pre-fill from an existing profile or pasted notes.
  2. Ask the EM the missing MEDDICC fields as gates.
  3. Derive power/interest and the engagement strategy.
  4. Confirm, then record via em_db.stakeholder.apply_meddicc.
NeedsBashReadem_db.stakeholder