Skip to main content

Affinity

The Affinity connector enables easy and secure data synchronization between your application and your customers’ Affinity accounts through unified data models.

Authorization

The Affinity connector uses OAuth for secure authentication. When creating a connection, the required OAuth scopes are automatically configured based on your specific operations needs (e.g. genericContact::create, genericUser::list).

✓ Automatic token refresh handling
✓ Proactive insufficient permissions detection

View our step-by-step integration guideWhitelabel
Supported
You can choose to provide your own set of clientId and clientSecret for this connector from the Morph Cloud dashboard; allowing a fully whitelabled experience for your end-customers.
import { Morph } from "@runmorph/cloud";

const morph = Morph({ publicKey: "pk_demo_xxxxxxxxxxxxxxx", secretKey: "sk_demo_xxxxxxxxxxxxxxx"}); 

// create a new connection
const connection = morph.connections({ connectorId: "affinity", ownerId: "demo" });
await connection.create({ operations:[ "genericContact::list" ]});

// auhtorize the connection
const { auhtorizationUrl } = await connection.authorize();

// redirect the user to the auhtorizationUrl

Live Demo
Select a connector below to experience our seamless authentication flow and see how easy it is to connect third-party services.

Models

Generic

The Affinity connector seamlessly integrates with our unified genericContact model, enabling you to manage Contacts with rich data including firstName, lastName, phoneNumber, email and other key details

API Reference
GET/resources/genericContactList and Search Affinity Contacts
GET/resources/genericContact/:idRetrieve a Affinity Contact
POST/resources/genericContactCreate a Affinity Contact
PATCH/resources/genericContact/:idUpdate a Affinity Contact
DEL/resources/genericContact/:idDelete a Affinity Contact
Custom Fields
Supported
The Affinity connector supports our Field Mapping feature, enabling you or your customers to seamlessly map Affinity Contact custom fields to the unified contact model. This allows for flexible data synchronization while maintaining data consistency across all connectors.

view Contact model details

The Affinity connector seamlessly integrates with our unified genericCompany model, enabling you to manage Companies with rich data including name and other key details

API Reference
GET/resources/genericCompanyList and Search Affinity Companies
GET/resources/genericCompany/:idRetrieve a Affinity Company
POST/resources/genericCompanyCreate a Affinity Company
PATCH/resources/genericCompany/:idUpdate a Affinity Company
DEL/resources/genericCompany/:idDelete a Affinity Company
Custom Fields
Supported
The Affinity connector supports our Field Mapping feature, enabling you or your customers to seamlessly map Affinity Company custom fields to the unified company model. This allows for flexible data synchronization while maintaining data consistency across all connectors.

view Company model details

The Affinity connector seamlessly integrates with our unified genericUser model, enabling you to manage Users with rich data including firstName, lastName, email and other key details

API Reference
GET/resources/genericUserList and Search Affinity Users
GET/resources/genericUser/:idRetrieve a Affinity User
POST/resources/genericUserCreate a Affinity User
PATCH/resources/genericUser/:idUpdate a Affinity User
DEL/resources/genericUser/:idDelete a Affinity User
Custom Fields
Supported
The Affinity connector supports our Field Mapping feature, enabling you or your customers to seamlessly map Affinity User custom fields to the unified user model. This allows for flexible data synchronization while maintaining data consistency across all connectors.

view User model details

The Affinity connector seamlessly integrates with our unified genericWorkspace model, enabling you to manage Workspaces with rich data including name and other key details

API Reference
GET/resources/genericWorkspaceList and Search Affinity Workspaces
GET/resources/genericWorkspace/:idRetrieve a Affinity Workspace
POST/resources/genericWorkspaceCreate a Affinity Workspace
PATCH/resources/genericWorkspace/:idUpdate a Affinity Workspace
DEL/resources/genericWorkspace/:idDelete a Affinity Workspace
Custom Fields
Supported
The Affinity connector supports our Field Mapping feature, enabling you or your customers to seamlessly map Affinity Workspace custom fields to the unified workspace model. This allows for flexible data synchronization while maintaining data consistency across all connectors.

view Workspace model details

CRM

The Affinity connector seamlessly integrates with our unified crmOpportunity model, enabling you to manage Opportunities with rich data including name, amount, currency, pipeline, stage and other key details

API Reference
GET/resources/crmOpportunityList and Search Affinity Opportunities
GET/resources/crmOpportunity/:idRetrieve a Affinity Opportunity
POST/resources/crmOpportunityCreate a Affinity Opportunity
PATCH/resources/crmOpportunity/:idUpdate a Affinity Opportunity
DEL/resources/crmOpportunity/:idDelete a Affinity Opportunity
Custom Fields
Supported
The Affinity connector supports our Field Mapping feature, enabling you or your customers to seamlessly map Affinity Opportunity custom fields to the unified opportunity model. This allows for flexible data synchronization while maintaining data consistency across all connectors.

view Opportunity model details

The Affinity connector seamlessly integrates with our unified crmPipeline model, enabling you to manage Pipelines with rich data including name, stages and other key details

API Reference
GET/resources/crmPipelineList and Search Affinity Pipelines
GET/resources/crmPipeline/:idRetrieve a Affinity Pipeline
POST/resources/crmPipelineCreate a Affinity Pipeline
PATCH/resources/crmPipeline/:idUpdate a Affinity Pipeline
DEL/resources/crmPipeline/:idDelete a Affinity Pipeline

view Pipeline model details

The Affinity connector seamlessly integrates with our unified crmStage model, enabling you to manage Stages with rich data including pipeline, name, type and other key details

API Reference
GET/resources/crmStageList and Search Affinity Stages
GET/resources/crmStage/:idRetrieve a Affinity Stage
POST/resources/crmStageCreate a Affinity Stage
PATCH/resources/crmStage/:idUpdate a Affinity Stage
DEL/resources/crmStage/:idDelete a Affinity Stage

view Stage model details

The Affinity connector seamlessly integrates with our unified crmEngagement model, enabling you to manage Engagements with rich data including type, direction, status, title, description and other key details

API Reference
GET/resources/crmEngagementList and Search Affinity Engagements
GET/resources/crmEngagement/:idRetrieve a Affinity Engagement
POST/resources/crmEngagementCreate a Affinity Engagement
PATCH/resources/crmEngagement/:idUpdate a Affinity Engagement
DEL/resources/crmEngagement/:idDelete a Affinity Engagement
Custom Fields
Supported
The Affinity connector supports our Field Mapping feature, enabling you or your customers to seamlessly map Affinity Engagement custom fields to the unified engagement model. This allows for flexible data synchronization while maintaining data consistency across all connectors.

view Engagement model details

Custom

Supported
Can’t find the unified model you need? The Affinity connector supports your own custom model.

Webhooks

The Affinity connector supports real-time event subscriptions, allowing you to receive instant notifications when records are created, updated, or deleted. Below are the supported models and their corresponding triggers.
ModelsCreatedUpdatedDeletedAPI Reference
genericContactview event
genericCompanyview event
genericUserview event
genericWorkspaceview event
crmOpportunityview event
crmPipelineview event
crmStageview event
crmEngagementview event

Proxy

Supported
The Affinity connector supports our Proxy Request feature, allowing you to directly call any endpoints from Affinity’s public API without needing to handle authentication. Your customer’s token will be automatically set and refreshed as needed, enabling quick implementation of custom connector behaviors. View API Reference.