Affinity
Affinity’s AI Notetaker records your customer calls. Connecting it brings those calls into Sonora, where they feed sentiment analysis, eCSAT, issue and feature-request detection, and the customer-meeting view in profiles and chat, the same signals Sonora draws from Gong and Granola calls.
What syncs
Section titled “What syncs”Each AI Notetaker call that has a transcript becomes a meeting on the matching customer:
- Title, start and end time, and attendees
- The transcript, with speaker attribution
- Affinity’s AI summary, used as the meeting summary
The integration is read-only. Calls stay in Affinity; Sonora pulls a copy. Companies, people, and opportunities are not imported.
Whose calls are imported
Section titled “Whose calls are imported”Affinity’s API has no organization-wide access. An API key sees only the notes, meetings, and transcripts its owner can see in Affinity, so the import is exactly as complete as that person’s view. Create the key from an account that can see every call you want in Sonora. A key owned by someone who sees only their own team’s calls imports only those.
If calls are missing after a sync, check that the key owner can open them in Affinity.
Prerequisites
Section titled “Prerequisites”- API access on your Affinity plan. It depends on the plan, so ask your Affinity account team if the option is missing.
- The role permission Generate an API key in Affinity.
- Transcript retention turned on in your Affinity organization. If Affinity doesn’t retain transcripts, there is nothing to import.
1. Create an API key in Affinity
Section titled “1. Create an API key in Affinity”- In Affinity, go to Settings → Manage Apps.
- Create an API key and copy it.
If the page isn’t there, your role lacks the Generate an API key permission. Ask an Affinity admin to grant it or to create the key for you.
2. Connect in Sonora
Section titled “2. Connect in Sonora”- Go to Settings → Integrations → Affinity.
- Paste the key into API key.
- Click Test connection. A successful test names your Affinity workspace and the key’s owner.
- Save.
After saving, Sonora never shows the key again, only its last four characters.
3. IP allowlist
Section titled “3. IP allowlist”If the key has an IP allowlist in Affinity, add Sonora’s outbound addresses, listed on the network access page. Without them the connection test fails.
First sync
Section titled “First sync”The first sync looks back 30 days. Sonora staff can raise this to 180 days for your workspace; ask us if you want older calls. After that, syncs fetch new calls and re-fetch the seven days before the last successful sync. These repeat reads count against your API quota too.
API quota
Section titled “API quota”Affinity counts API calls against a monthly quota per account: 100,000 on the Scale and Advanced plans, unlimited on Enterprise. Your other Affinity integrations draw from the same quota.
Sonora spends a few requests per call, more for long transcripts. If the quota runs out, the sync stops with a message that says when Affinity resets it, and picks up from where it left off on the first sync after the reset.
Customer matching
Section titled “Customer matching”Calls match to Sonora customers by the email domains of the external attendees. Two kinds of call are skipped rather than stored unattached:
- A call with no linked Affinity meeting, since attendee emails come from the meeting and there is nothing to match on.
- A call whose external attendees match no customer. Add the customer or its domain in Sonora, then contact Sonora staff to replay the skipped calls. Re-running the import doesn’t pick them up, because Sonora sees the call as unchanged.
Known limitation
Section titled “Known limitation”Sonora merges a call with the same meeting from Google Calendar when it can. A one-to-one call has too few attendees to merge reliably, so it can appear twice, once from each source.
Disconnect
Section titled “Disconnect”From Settings → Integrations, disconnect the Affinity card. To revoke access on Affinity’s side, delete the key in Settings → Manage Apps.
Troubleshooting
Section titled “Troubleshooting”“Connection failed” on test. Confirm the key was copied in full and is still active in Affinity. If the key has an IP allowlist, check that Sonora’s addresses are on it.
Calls missing after sync. Usually visibility. The key sees only what its owner can see in Affinity. Check that the owner can open the call, or create the key from an account with wider access.
A call has no transcript. Affinity returns no transcript when your organization doesn’t retain them or the transcript was deleted. Those calls are not imported.
Sync stopped with a quota message. The monthly Affinity API quota is used up. Sync resumes after the reset date in the message. Other integrations on the same Affinity account count against the same quota.