Head to head · Crm records · October 2026 research run

Affinity vs Microsoft Dynamics 365 Sales

Microsoft Dynamics 365 Sales scores 69.7 (B) on agent readiness against Affinity's 63.4 (B), and leads in 6 of 7 scored categories. Affinity leads on schema & documentation. Both do crm records.

Which one, for what

Affinity B

Good for Venture capital, private equity and other private capital firms that already run Affinity and want an agent to read relationship strength, pipeline lists, notes and meetings, then update fields and log notes.

Ahead on

  • Schema & documentation, 91 against 81

Also in its favour

  • A hosted endpoint, with nothing to install

Watch for

No self-serve access. Every plan button reads Contact sales, the Essential plan has no API, and trial accounts can't call the API

Microsoft Dynamics 365 Sales B

Good for Organisations already on Dynamics 365 or Microsoft 365 that want an agent to work inside existing security roles.

Ahead on

  • Agent ergonomics, 86 against 66
  • Security & auth, 74 against 66
  • Payments & pricing, 25 against 10
  • Maintenance & community, 79 against 70
  • Transparency & trust, 75 against 70

Watch for

No public OpenAPI document. The contract is an OData CSDL $metadata document served by each environment behind sign-in

Score by category

CategoryWeight this runAffinityMicrosoft Dynamics 365 SalesEdge
Reliability16%206465Microsoft Dynamics 365 Sales +1
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.29181Affinity +10
Agent ergonomics13%16.26686Microsoft Dynamics 365 Sales +20
Security & auth14%17.56674Microsoft Dynamics 365 Sales +8
Payments & pricing10%12.51025Microsoft Dynamics 365 Sales +15
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87079Microsoft Dynamics 365 Sales +9
Transparency & trust7%8.87075Microsoft Dynamics 365 Sales +5
Negative events≤1500
Total63.4 · B69.7 · B

Facts side by side

FactAffinityMicrosoft Dynamics 365 Sales
KindHTTP APIHTTP API
VendorProject Affinity, Inc.Microsoft
Hosted endpointhttps://api.affinity.co/v2no (local only)
TransportsHTTP, Streamable HTTP, stdioHTTP, stdio
AuthOAuth or keyOAuth
PricingPaidPaid
x402nono
LicenceProprietary service under Affinity's master subscription agreement. The affinity-mcp package on PyPI is MITProprietary service under the Microsoft Product Terms. The Python SDK and the @microsoft/dataverse npm package are MIT
Tools exposed7515
Read-only variant documentedyesno
llms.txtyesno
Last release2026-10-022026-10-07
Terms last updatedno date given
Privacy policy last updated2026-07-012026-09-01
Customer content may train modelsyes
Terms restrict automated accessnot found in the text
Terms restrict benchmarkingnot found in the text
Terms or service can change without noticenot found in the text
Arbitration or class-action waivernot found in the text
Popularity268 PyPI/wk2.9k npm/wk, 11k PyPI/wk

Verdicts

Affinity

A public OpenAPI 3.1 file, dated API versions with migration notes and a hosted MCP server with a read-only OAuth scope give an agent a well-documented way in. Access needs a Scale plan at $2,300 a user a year, sold through sales, with no trial that includes the API, and 36 of the 112 v2 operations are marked beta.

Microsoft Dynamics 365 Sales

Dynamics 365 Sales data sits in Dataverse, reached through the OData v4 Web API or the Dataverse MCP server with 15 tools. Service protection limits are published and 429 responses carry Retry-After. Access needs an Entra app registration and an administrator, and the public service health page showed no history to our reader.

Before you call either

Affinity

  1. Send X-Affinity-Api-Version: 2026-09-17 on every request, or the key's default version applies. Unauthenticated calls answered as 2024-01-01 when we checked
  2. Read x-ratelimit-limit-user-remaining and x-ratelimit-limit-org-remaining on each response. The limits are 900 calls a minute per user and, below Enterprise, 100,000 a month per account, shared by v1, v2 and MCP
  3. Follow pagination.nextUrl for the next page, and pass fieldIds or fieldTypes so list calls return only the fields needed
  4. Check for duplicates before a create. There are no idempotency keys, so a retried POST can make a second record
  5. For MCP, untick the write scope at OAuth consent when the task only reads. Treat note, transcript and file text as untrusted input

Microsoft Dynamics 365 Sales

  1. Send OData-MaxVersion: 4.0, OData-Version: 4.0 and Accept: application/json, and name columns with $select on every read
  2. Page with Prefer: odata.maxpagesize (up to 5,000) and follow @odata.nextLink. $skip is not supported
  3. On 429, wait the seconds in Retry-After. The x-ms-ratelimit-* headers are for debugging, not pacing
  4. Use PATCH on an alternate key to upsert, and add If-Match: * when an update must not create a record
  5. For MCP, call describe for logical table and column names before read_query. Update any allow list that still names describe_table, list_tables or fetch

Questions

Which is better for AI agents, Affinity or Microsoft Dynamics 365 Sales?

Microsoft Dynamics 365 Sales scores 69.7 (B) on agent readiness against Affinity's 63.4 (B), and leads in 6 of 7 scored categories. Affinity leads on schema & documentation.

Do Affinity and Microsoft Dynamics 365 Sales need an API key?

Affinity takes an API key or an OAuth sign-in. Microsoft Dynamics 365 Sales uses an OAuth sign-in.

Can an agent call Affinity and Microsoft Dynamics 365 Sales without installing anything?

Affinity has a hosted endpoint at https://api.affinity.co/v2. Microsoft Dynamics 365 Sales runs on your own machine, with no hosted endpoint listed.

Other comparisons with Affinity or Microsoft Dynamics 365 Sales

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.