crmapi_key

Affinity

Affinity helps private capital investors to find, manage, and close more deals

Verdict

Affinity is a relationship intelligence CRM that tracks who on your team knows whom, and how strong those connections are. In Switchy, @mentioning Affinity lets you pull company profiles, person records, opportunity pipelines, and list entries without leaving the conversation. Sales and BD teams use it to surface warm intros before a call, check deal stage during planning, or export filtered views for reporting. Setup requires an API key with 'export data from lists' permission — read-only scopes mean you can query but not update records from chat.

Common use cases

  • Surface warm intros before outbound calls
  • Check deal stage and owner mid-conversation
  • Export filtered list views for weekly reports
  • Pull person contact history during prep
  • Summarize opportunity pipeline at team sync

Integration

Vendor
Affinity
Category
crm
Auth
API_KEY
Tools
20
Composio slug
affinity

Tools

  • Get a company s list entries

    Summarize company data across all lists, including list-specific fields and metadata like creation date and author. access requires "export data from lists" permission.

  • Get a company s lists

    Returns metadata for all the lists on which the given company appears.

  • Get all companies

    Affinity api allows paginated access to company info and custom fields. use `fieldids` or `fieldtypes` to specify data in a request. retrieve field ids/types via get `/v2/companies/fields`. export permission needed.

  • Get all list entries on a list

    Access and export essential data and metadata for companies, persons, or opportunities from a list, specifying data via `fieldids` or `fieldtypes`. "export data from lists" permission is necessary.

  • Get all list entries on a saved view

    Use the endpoint to access rows in a saved view with specific filters and selected fields from a web app. it doesn't maintain sort order, supports only sheet-type views, and requires export permissions.

  • Get all opportunities

    Pagination through opportunities in affinity yields basic info but excludes field data. for field data, use specified get endpoints. "export data from lists" permission needed.

  • Get all persons

    The affinity api offers paginated access to person data using `fieldids` or `fieldtypes`. bulk extraction needs special permissions and supports multiple parameters.

  • Get a person s list entries

    Summary: browse rows for a person in all lists, showing field data and entry metadata like creation time and author. requires "export data from lists" permission.

  • Get a person s lists

    Returns metadata for all the lists on which the given person appears.

  • Get a single company

    Retrieve basic company info and specific field data by using `fieldids` or `fieldtypes` parameters. multiple fields can be queried. no field data if parameters aren't specified. requires "export all organizations directory" permission.

  • Get a single opportunity

    Get basic details about an opportunity without field data via provided endpoints. field data requires using specific list entry apis and the "export data from lists" permission.

  • Get a single person

    Use get `/v2/persons/fields` with `fieldids` or `fieldtypes` for detailed data; basic info by default. request multiple fields at once. "export all people" permission needed.

  • Get current user

    Returns metadata about the current user.

  • Get metadata on all lists

    Returns metadata on lists.

  • Get metadata on a single list

    Returns metadata on a single list.

  • Get metadata on a single list s fields

    Returns metadata on the fields available on a single list. use the returned field ids to request field data from the get `/v2/lists/{listid}/list-entries` endpoint.

  • Get metadata on a single saved view

    Returns metadata on a single saved view.

  • Get metadata on company fields

    Returns metadata on non-list-specific company fields. use the returned field ids to request field data from the get `/v2/companies` and get `/v2/companies/{id}` endpoints.

  • Get metadata on person fields

    Returns metadata on non-list-specific person fields. use the returned field ids to request field data from the get `/v2/persons` and get `/v2/persons/{id}` endpoints.

  • Get metadata on saved views

    Returns metadata on the saved views on a list.

Setup

Setup guide

  1. 11. In Switchy, open your workspace settings and navigate to the Integrations tab. 2. Click 'Add MCP Integration' and select Affinity from the catalog. 3. In a separate browser tab, log into Affinity and go to Settings > API to generate a new API key with 'Export data from lists' permission enabled. 4. Copy the key, return to Switchy, and paste it into the API Key field, then click Connect. 5. Switchy will verify the connection and list the 20 tools now available. 6. To test, open any Space, type '@Affinity get all companies' and send — you should see a paginated list of company records. 7. From now on, @mention Affinity in any message to invoke its tools inline.

What teammates see: by default, memories from Affinity are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.

Works well with

Top models

Compatibility data appears once enough Spaces have used this MCP together with a given model.

How Switchy teams use it

Not enough Spaces yet to publish anonymised usage stats (we require ≥ 50 Spaces per week).

Starter prompts

Warm Intro Check

@Affinity get the company record for Acme Corp and show me all the people in our network who have interacted with them in the past year.
Open in a Space →

Deal Stage Summary

@Affinity get all opportunities in the 'Enterprise Pipeline' list where stage is 'Negotiation' and show owner, close date, and last activity.
Open in a Space →

Weekly Pipeline Export

@Affinity get all list entries on the saved view 'Q1 Active Deals' and format as a table with company name, ARR, stage, and owner.
Open in a Space →

Contact History Lookup

@Affinity get the person record for jane.doe@example.com and list all the list entries showing interaction dates and notes.
Open in a Space →

New Lead Triage

@Affinity search for a company named 'Beta Industries' and if found, show me which lists it appears on and who created the entry.
Open in a Space →

Example outputs

Illustrative - representative of the model's voice and quality, not literal recordings.

Prompt

@affinity show me all companies in our enterprise pipeline with deal size over $100k and their current stage

Output

Based on your Enterprise Pipeline list, here are 8 companies matching your criteria: Acme Corp ($250k, Stage: Negotiation, last updated 3 days ago by Sarah), TechFlow Inc ($180k, Stage: Proposal Sent, last updated 1 week ago by Mike), DataSync Solutions ($150k, Stage: Discovery, last updated 2 days ago by Jordan)... Each entry includes the company name, deal size field, current stage, last interaction date, and the team member who last updated the record. This view reflects your list's custom fields as configured in Affinity.

Notes

This example uses the 'Get all list entries on a list' tool with field filtering. Requires 'export data from lists' permission in Affinity. The MCP returns whatever custom fields exist on your list — deal size, stage, and other fields must already be defined in your Affinity workspace. Results are paginated; large lists may require follow-up prompts.

Prompt

@affinity find all people at companies tagged 'active customer' who haven't been contacted in the last 30 days

Output

Found 12 contacts across 7 active customer accounts with no logged interactions in the past 30 days: John Smith at Acme Corp (last contact: 42 days ago), Lisa Chen at TechFlow Inc (last contact: 35 days ago), Marcus Johnson at DataSync Solutions (last contact: 31 days ago)... Each result shows the person's name, company affiliation, role, last interaction date, and the team member who owns that relationship. This cross-references your Companies list tags with Person records and interaction history.

Notes

This example combines 'Get all persons' with 'Get a person's list entries' to synthesize relationship data. The MCP reads interaction timestamps from Affinity's activity log but cannot create new interactions — you'd need to log those touches separately. Filtering by tags requires those tags to exist as custom fields on your Companies list.

Prompt

@affinity summarize our Q1 opportunity pipeline by stage and calculate total potential revenue for deals in negotiation or later

Output

Your Q1 Opportunities list contains 34 active deals totaling $4.2M in potential revenue. Breakdown by stage: Discovery (8 deals, $800k), Proposal Sent (12 deals, $1.5M), Negotiation (9 deals, $1.3M), Verbal Commit (5 deals, $600k). Deals in Negotiation or later stages represent $1.9M across 14 opportunities. Average deal size is $123k. Top 3 opportunities by value: Enterprise Corp ($350k, Negotiation), Global Systems ($280k, Verbal Commit), Innovate LLC ($220k, Negotiation). This analysis reflects data as of your last Affinity sync.

Notes

This example uses 'Get all opportunities' with field filtering to aggregate deal data. The AI performs the math and grouping — Affinity returns raw opportunity records with custom field values. Requires 'export data from lists' permission. Revenue calculations assume your deal size field is populated; missing values are excluded from totals. Stage names must match your Affinity list configuration exactly.

Use-case deep-dives

Investor relations pipeline sync

When Affinity MCP replaces manual CRM exports for fundraising teams

A 3-person startup fundraising team tracking 80 investor conversations across multiple lists in Affinity can use this MCP to pull pipeline data directly into Switchy prompts without CSV exports. The "Get all list entries on a list" and "Get all opportunities" tools let you query deal stage, last contact date, and custom fields (like check size or thesis fit) in real time, so your team can draft follow-up emails or prep pitch decks with current context. This works cleanly if your Affinity instance has under 10 custom lists and you're comfortable granting "export data from lists" permission to the API key. If your CRM has 50+ lists or highly sensitive LP data, the broad export scope becomes a risk. For teams running weekly investor syncs and needing live data in AI workflows, this MCP cuts the export-paste loop and keeps your fundraising context fresh.

BD prospect research at scale

How this MCP speeds up company research for partnership teams

A 6-person business development team at a B2B SaaS company uses Affinity to track 200+ potential integration partners, tagging each company with custom fields like tech stack, employee count, and last outreach date. The "Get all companies" and "Get a company's list entries" tools let the team query Affinity directly from Switchy to surface which prospects match a new partnership thesis or need re-engagement. Instead of exporting spreadsheets every Monday, the BD lead prompts Switchy to list all companies tagged "API-first" with no contact in 90 days, then drafts personalized outreach in the same session. This flow breaks down if your company database exceeds 5,000 records or you need sub-second query times—Affinity's API pagination slows at scale. For mid-market BD teams running weekly partner reviews, this MCP turns your CRM into a live research layer without leaving the AI workspace.

Customer success account planning

When to use Affinity MCP for quarterly business reviews

A 4-person customer success team at a professional services firm tracks 60 enterprise accounts in Affinity, logging touchpoints, renewal dates, and upsell opportunities as custom fields. Before quarterly business reviews, the team lead uses the "Get all persons" and "Get a person's list entries" tools to pull contact history and account metadata into Switchy, then prompts the AI to draft QBR decks summarizing engagement trends and next steps. This replaces manual note aggregation and keeps the narrative grounded in CRM data. The trade-off: if your CS team needs to cross-reference Affinity data with support tickets or product usage from other tools, this MCP alone won't close the loop—you'd layer it with a ticketing or analytics MCP. For teams whose source of truth lives in Affinity and who run structured account reviews monthly or quarterly, this MCP makes prep 3x faster.

Frequently asked

What does the Affinity MCP let me do in Switchy?

It pulls company, person, and opportunity records from your Affinity CRM into Switchy prompts. You can query list entries, filter by custom fields, and export data across multiple lists without switching tabs. The MCP surfaces the same data you'd see in Affinity's web app—names, metadata, list memberships—so your team can reference CRM context mid-conversation.

Do I need special Affinity permissions to connect this MCP?

Yes. The API key you use must have "export data from lists" permission enabled in Affinity. Without it, most of the 20 tools—including company summaries, person list entries, and opportunity exports—will fail. Check your Affinity workspace settings before connecting, or ask an admin to generate a key with export rights.

Can the Affinity MCP create or update records in my CRM?

No. This MCP is read-only. It retrieves companies, persons, opportunities, and list entries but cannot write back to Affinity. If you need to log a new contact or update a deal stage, do that in Affinity directly or via a separate automation tool. The MCP exists to surface existing data, not modify it.

How is this different from just opening Affinity in another tab?

The MCP feeds CRM data directly into your AI prompts, so you can ask "summarize deals for Acme Corp" without copy-pasting from Affinity. It's faster for cross-referencing records during research or outreach drafting. You still need Affinity for editing records or using its relationship-mapping UI—the MCP doesn't replace the full app.

Who on my team should connect the Affinity MCP?

Whoever owns the Affinity API key with export permissions. Typically that's a sales ops lead or admin. Once connected in Switchy, any workspace member can invoke the MCP in their prompts. The key stays workspace-scoped, so you don't need every user to authenticate individually—just one person with the right Affinity access.

Data last verified 607 hours ago.Sources aggregated hourly to weekly. See docs/architecture/model-directory.md.