Shared building blocks
What every integration needs from PostMoney
Each block below is named by more than one of the research documents. Status reflects what those documents say already exists in PostMoney and what they describe as still to be designed.
A generic external source input
Every integration ends at the same place: material with a source type, an external ID, a source URL, an author, and a timestamp, flowing into update ingestion. Email via Action Mailbox is the closest analog today.
Zapier's "Submit Update Material" action, Notion's markdown page fetch, a Granola note, and a Slack message or file are all the same primitive. Build the input once, then every source is a thin adapter.
Company matching and a review inbox
Signals across the documents: attendee and participant domains, known founder emails, calendar titles, folder, channel, database, saved view, external CRM ID, exact normalized name, and prior confirmed matches. Ambiguous matches surface for review and never attach silently.
Company reconciliation for unresolved sources already exists as a concept. Matching is the product issue every source shares.
An evidence hierarchy with provenance
Formal document, written company update, reviewed meeting summary, raw transcript, private notes, and PostMoney interpretation are different kinds of evidence and stay labeled as such.
Provenance must answer: which source, when, who owned it, summary or transcript, was it edited later, did a user review it, is the speaker known. Nothing spoken becomes canonical without review.
A "portfolio interaction" object
A dated conversation that contains evidence about one or more companies, or about the fund's relationship with them. Visibly distinct from a formal update; it may supplement a reporting period without pretending to be one.
Needed by Granola notes, Affinity meetings and transcripts, Slack chatter, and meeting tools arriving via Zapier. The unit of portfolio memory between updates.
Asks, commitments, decisions, open questions
Four related objects proposed from a conversation, each citing the meeting as its source, that can become tasks after review.
Tasks and assignment exist (Tasks V1). The proposal and review step in front of them does not. Accountability without treating a call as a reporting event.
Webhook intake with reconciliation
Every platform's webhooks are incomplete: Affinity has no interaction events and an undocumented signature scheme; Notion is at-most-once and aggregated; Granola has no delete or revoke events.
Each needs signature verification where offered, idempotency on event IDs, and a periodic reconciliation sweep. Webhooks prompt refreshes; they are not the record.
Per-account connection records and revocation
Slack: one workspace per account. Notion: one token per authorizing user, many per organization, events routed via accessible_by. Granola: personal versus workspace keys. Affinity: a key acts as its owning user. Zapier: OAuth 2 with explicit organization selection.
All need admin visibility and revocation from inside PostMoney. Who connected what, and how to turn it off.
Outbound rendering
Digest cards, alerts, and canvases for Slack; database rows and pages for Notion; trigger payloads for Zapier.
The batch run receipt and the cadence model already exist to feed them. One event, several renderings.
A stable public automation vocabulary
The Zapier document's Stage 1: a small, stable set of things PostMoney can receive, emit, and find. Source-material ingestion, company matching, update lifecycle events, review tasks and health signals, confirmed structured observations, report availability.
Coherent enough to support Zapier, native integrations, internal automation, and an eventual public API. Define the contract before the connector.
An agent action policy
Distinguish read and preview, draft for approval, reversible internal write, external communication, sensitive data export, and destructive or financially consequential action.
Needed before any assistant acts on the fund's behalf in Slack, Notion, or Zapier. Review scales with consequence.
Platform facts side by side
The same seven questions, five answers each
Filled strictly from the research. Where a document does not state a fact, the cell says so.
| Fact | Affinity | Granola | Slack | Notion | Zapier |
|---|---|---|---|---|---|
| Auth model | Bearer API key acting on behalf of its owning user. IP allowlist optional. | Personal or workspace API key. MCP via user OAuth. | Per-workspace OAuth install, tokens stored on the account. | Public connection, token tied to the authorizing user, page picker at install. | OAuth 2 preferred. User selects the organization. |
| Event mechanism | V1 webhooks. Max 3 subscriptions, about 25 event types. field_value.updated is the key one. |
Signed webhooks (Standard Webhooks): note.generated, note.edited, note.access_granted. Folder scoping. |
Events API: message.*, app_mention, file_shared, reaction_added, member_joined_channel. |
Webhooks with HMAC-SHA256 signature. Page, data_source, comment, file_upload, and view events. | REST hook triggers or polling from PostMoney's side. |
| Delivery guarantee | Retries with exponential backoff up to 10 hours, then the subscription is disabled. Signature scheme undocumented. | Retries. Event IDs stable across retries. | Standard Slack delivery. | At-most-once. Up to 8 retries over about 24 hours. Aggregated, out of order. | Zapier retries and execution history. User-owned Zaps can stop. |
| Rate limits | 900 calls per user per minute. 100,000 per month on Scale and Advanced, unlimited on Enterprise. | not stated in research | not stated in research | About 3 requests per second per connection, plus a hidden per-workspace limit. 429 or 529 on excess. | Zapier task usage on the customer's plan. |
| Plan gating | No API on Essentials. Data Share and MCP on higher tiers. | API and webhooks on Business and Enterprise. | Some capabilities paid-plan gated. Marketplace review. assistant_view shuts off February 2027. |
Workers on Business and Enterprise, credit-consuming. Marketplace review 5 to 10 business days. | Private: 100 invites, no embed, no MCP. Public: launched product and documented API required. |
| Biggest data gap | No events for meetings, emails, calls, chats, transcripts, or enrichment. Email bodies unconfirmed. | No deletion or access-revocation events. | Real-Time Search is query-time only and inherits the user's permissions. | Thin events, must re-read. Rollups and relations opaque. | Connector depth varies per app. |
| Sensitivity flag | Data Share bypasses Affinity ACLs. | Private notes, transcripts, board and IC content. | Founder data in Slack Connect channels. | A capability change forces re-auth for every existing user. | Data leaving PostMoney to personal or external accounts. |
Things to flesh out
What each document left open
Grouped by integration. These are the questions the research itself says must be answered before a plan is written.
Affinity
- Confirm the webhook signature or shared-secret scheme with Affinity.
- Verify which API version (V1 or V2) owns each capability we need.
- Integration identity versus an individual's key for a consistent firm-wide view.
- Which saved view or list designates the portfolio.
- Which enrichment fields are actually returned, given PitchBook, Crunchbase, and some Dealroom restrictions.
- Whether Data Share is ever appropriate for a multi-tenant product.
Granola
- Which meetings funds actually capture: founder calls, board meetings, portfolio reviews, IC, or unrelated internal calls.
- Folder-based versus attendee-based discovery.
- Summaries only, or transcripts too.
- Who sees private investor notes inside PostMoney.
- Segmenting a meeting that discusses several companies.
- Manual "Send to PostMoney" versus automatic folder ingestion.
- Would funds pay for or standardize on the Business plan that API and webhooks require.
Slack
- Agent surface and Agent Sessions API details.
- What PostMoney stores versus what it queries live through Real-Time Search.
- Disclosure to founders in Slack Connect channels.
- Length threshold and triggers for treating a message as an update candidate.
- The one-workspace-per-account tenancy model.
Notion
- Do target funds keep updates in databases or in free-form pages.
- Template duplication at install versus pointing at existing structure.
- Sync-out versus ingest as the priority direction.
- Per-user token modeling and routing events via
accessible_by. - Backfill throttling with a resumable cursor, against two rate limits.
- Notion's approval bar for a Link Preview partnership.
- Handling un-shares, moves, and deletes without deleting already-extracted data.
Zapier
- The trigger, action, and search list for v1.
- Polling versus REST hook triggers.
- Organization selection during OAuth when a user belongs to several.
- Which objects automations may create directly versus which arrive as reviewable source material.
- Whether admins can allow inbound automations while blocking outbound portfolio data.
- When to publish publicly, given the pre-launch status and Zapier's review requirements.
Open product questions
The cross-cutting ones
These recur across the documents and are product decisions, not technical ones.
- Is PostMoney an inbound intelligence system, or an operational hub that routinely writes back to the fund's stack?
- Does a connection belong to a user, an organization, or both?
- Which PostMoney events are stable and meaningful enough to become a public contract?
- How should ambiguous company matching appear to users?
- Should PostMoney tasks mirror external tasks, or should one system always be authoritative?
- What would make users trust a change or contradiction detected from spoken conversation?
- At what usage threshold does a Zapier workflow justify a native integration?
Suggested order of operations
A proposal, not a roadmap
A synthesis of how the five documents stage their own recommendations, arranged so each step reuses the last.
Build the shared blocks
The generic external source input, company matching with a review inbox, and evidence provenance. Every later step depends on these three.
Validate meetings cheaply
Granola via Zapier or a light import, the fastest way the research names to learn whether funds want the workflow. Add a Slack digest card, which the Slack document ranks first.
Zapier private connector with design partners
One workflow per category: meeting ingestion, cloud-file ingestion, a CRM handoff, a notification, a structured-data export. Learn where matching fails and which payloads are missing.
Native Slack ingestion and agent; Notion ingest
Channel watching and the PostMoney agent on the Agent Sessions API. Notion ingestion via the markdown API with an install-time template so the schema is known from the start.
Affinity roster and change summaries; Notion sync-out
A designated Affinity list or saved view as the portfolio roster, with change summaries from field-value history. PostMoney metrics written out to Notion. Deepen wherever usage shows demand.
This order is a reading of the five documents, not a committed roadmap. Each document's own phasing and caveats take precedence where they differ.
Sources
The five research documents
Every fact on this page traces to one of these files under the PostMoney repository.
docs/research/afiinity-intergration.mddocs/research/granola-intergration.mddocs/research/slack-intergration.mddocs/research/notion-intergration.mddocs/research/zapier-intergration.md