DealerAI
Integrations

Integrations

Connect DealerAI to external CRM systems, automotive platforms, and configure webhook event subscriptions.

The Integrations section lets you connect DealerAI to the external systems your dealership already uses — CRMs, inventory platforms, and scheduling tools — so data flows automatically between them without manual re-entry.

Overview

DealerAI supports two types of integrations:

TypeDescription
Integration AgentsPre-built connections to specific automotive platforms and CRMs
Event SubscriptionsWebhooks that notify external systems when specific events happen in DealerAI

Navigate to Integrations in the sidebar to access both.

Integration Agents

Add integration connection dialog

Integration Agents are pre-configured connectors for popular automotive platforms. Enabling an agent activates the two-way data sync between DealerAI and that platform.

Supported Platforms

PlatformCapabilities
VinSolutionsPush leads and appointments into the VinSolutions CRM
DealerSocketSync lead data and appointment details with DealerSocket
FortellisAccess automotive data services and inventory via the Fortellis network
XTimeSync service appointments with XTime scheduling

Contact your DealerAI account manager to enable additional integration agents not listed here. Availability may depend on your subscription plan.

Configuring an Integration Agent

Go to Integrations → Integration Agents
Find the platform you want to connect and click Configure
Enter the required credentials (API key, dealer ID, or OAuth details) from your external platform account
Click Save and Test to verify the connection is working
Toggle the integration Active to begin data sync

Event Subscriptions (Webhooks)

Event Subscriptions let you receive real-time notifications in your own systems whenever something happens in DealerAI. This is useful for building custom integrations or triggering workflows in tools like Zapier or your internal platforms.

Available Events

Lead Events

EventTriggered when
lead.createdA new lead is created
lead.receivedA lead is received
lead.update.dispositionA lead's disposition is updated

Appointment Events

EventTriggered when
appointment.createdAn appointment is created
appointment.rescheduledAn appointment is rescheduled
appointment.cancelledAn appointment is cancelled

Contact Events

EventTriggered when
contact.createdA new contact is created
contact.basic.updatedA contact's basic information is updated
contact.vehicleofinterest.updatedA contact's vehicle of interest is updated
contact.sequence_enrollment.updatedA contact is enrolled or unenrolled from a sequence

Conversation Events

EventTriggered when
conversation.startedA conversation is started
conversation.repliedA conversation is replied to
conversation.flaggedA conversation is flagged (e.g., marked as priority)
conversation.takenoverA conversation is taken over by an agent

Sequence Events

EventTriggered when
sequence.enrollment.createdA contact is enrolled in a sequence
sequence.enrollment.completedA contact completes all steps in a sequence
sequence.enrollment.pausedA sequence enrollment is paused
sequence.enrollment.unenrolledA contact is unenrolled from a sequence
sequence.reply.receivedA contact replies to a sequence message
sequence.step.executingA sequence step is about to execute
sequence.step.executedA sequence step executes successfully
sequence.step.failedA sequence step execution fails
sequence.step.skippedA sequence step is skipped

Event Payloads

All webhook events are delivered as an HTTP POST with a JSON body. Every event shares a set of common base fields, and each event type then adds its own specific fields on top.

Common Fields (all events)

FieldTypeDescription
dealerIdstringThe dealer this event belongs to
leadIdstringThe originating lead document ID (Cosmos), when applicable
timestampstring (ISO 8601)UTC timestamp of when the event was fired

Lead Events

All lead events include the common fields plus:

FieldTypeDescription
conversationIdstringThe associated conversation ID
contactIdstringThe contact's ID
firstNamestringCustomer first name
lastNamestringCustomer last name
emailstringCustomer email
phonestringCustomer phone number

lead.created adds:

FieldTypeDescription
sourcestringLead source (e.g., AutoTrader, dealer website)
vehicleYearstringVehicle year of interest
vehicleMakestringVehicle make of interest
vehicleModelstringVehicle model of interest
vehicleVinstringVehicle VIN
commentsstringAdditional comments from the lead

lead.update.disposition adds:

FieldTypeDescription
dispositionCodestringThe disposition code
dispositionNamestringHuman-readable disposition name
notesstringAdditional notes

lead.received — no additional fields beyond the base lead fields.


Appointment Events

All appointment events include the common fields plus:

FieldTypeDescription
conversationIdstringThe associated conversation ID
appointmentTypestringType of appointment (e.g., sales, service, testdrive, tradein, leasereturn)
contactIdstringThe contact's ID
namestringContact full name
emailstringContact email
phonestringContact phone number
appointmentTimestring (ISO 8601)Scheduled appointment date and time (UTC)

Sales and test drive appointments (appointment.created with appointmentType: sales or testdrive) add:

FieldTypeDescription
vehicleYearstringVehicle year
vehicleMakestringVehicle make
vehicleModelstringVehicle model
vehicleVinstringVehicle VIN
vehicleStockNumberstringStock number (test drive only)

Service appointments add:

FieldTypeDescription
serviceTypestringType of service requested
vehicleVinstringVehicle VIN
vehicleMakestringVehicle make
vehicleModelstringVehicle model
vehicleYearstringVehicle year

Trade-in appointments add:

FieldTypeDescription
tradeInVehicleModelstringTrade-in vehicle model
tradeInVehicleYearstringTrade-in vehicle year
tradeInVehicleMileagestringTrade-in vehicle mileage
tradeInVehicleConditionstringTrade-in vehicle condition
tradeForVehicleModelstringDesired vehicle model
tradeForVehicleYearstringDesired vehicle year
tradeForVehicleVinstringDesired vehicle VIN

Contact Events

All contact events include the common fields plus:

FieldTypeDescription
contactIdstringThe contact's ID
namestringContact full name
firstNamestringContact first name
lastNamestringContact last name
emailstringContact email
phonestringContact phone number

contact.created adds:

FieldTypeDescription
createdAtUtcstring (ISO 8601)When the contact was created

contact.basic.updated adds:

FieldTypeDescription
updatedAtUtcstring (ISO 8601)When the contact was updated

contact.vehicleofinterest.updated adds:

FieldTypeDescription
updatedAtUtcstring (ISO 8601)When the vehicle of interest was updated
vehicleInterest.yearstringVehicle year
vehicleInterest.makestringVehicle make
vehicleInterest.modelstringVehicle model
vehicleInterest.trimstringVehicle trim
vehicleInterest.vinstringVehicle VIN
vehicleInterest.stockstringStock number
vehicleInterest.bodyStylestringBody style
vehicleInterest.intereststringInterest type (buy, lease, sell, trade-in, test-drive)
vehicleInterest.statusstringVehicle status (new, used)
contactobjectFull updated contact record

contact.sequence_enrollment.updated adds:

FieldTypeDescription
inSequencebooleanWhether the contact is currently enrolled in a sequence
updatedAtUtcstring (ISO 8601)When the enrollment status changed
contactobjectFull updated contact record

Conversation Events

All conversation events include the common fields plus:

FieldTypeDescription
conversationIdstringThe conversation ID
channelstringThe channel (e.g., sms, email, webchat)

conversation.started adds:

FieldTypeDescription
firstMessagestringThe opening message of the conversation
namestringCustomer name
emailstringCustomer email
phonestringCustomer phone number

conversation.replied adds:

FieldTypeDescription
messagestringThe reply message content

conversation.flagged adds:

FieldTypeDescription
flagstringThe flag label (e.g., Priority)
contactIdstringThe contact's ID
namestringCustomer name
emailstringCustomer email
phonestringCustomer phone number
notesstringOptional free-form notes
conversationSummarystringAI-generated summary of the conversation at the time of flagging
conversationSummaryGeneratedAtUtcstring (ISO 8601)When the summary was generated
flaggedAtUtcstring (ISO 8601)When the conversation was flagged

conversation.takenover adds:

FieldTypeDescription
agentUserIdstringUser ID of the agent who took over
agentNamestringName of the agent who took over

Sequence Events

All sequence events include the common fields plus:

FieldTypeDescription
sequenceIdstringThe sequence ID

Enrollment events (sequence.enrollment.created, sequence.enrollment.completed, sequence.enrollment.paused, sequence.enrollment.unenrolled, sequence.reply.received) add:

FieldTypeDescription
sequenceNamestringName of the sequence
enrollmentCountnumberNumber of contacts in this enrollment batch
channelstringChannel(s) used by the sequence
startDatestring (ISO 8601)Enrollment start date
fileNamestringCSV filename, if enrolled via file upload
contactIdstringContact ID (single-contact enrollments)
contactEmailstringContact email (single-contact enrollments)
contactPhoneNumberstringContact phone (single-contact enrollments)
contactFirstNamestringContact first name (single-contact enrollments)
contactLastNamestringContact last name (single-contact enrollments)
conversationIdstringConversation ID (reply events)
messagestringReply message content (reply events)

Sequence step events (sequence.step.executing, sequence.step.executed, sequence.step.failed, sequence.step.skipped) add:

FieldTypeDescription
sequenceNamestringName of the sequence
enrollmentIdstringThe enrollment ID
contactIdstringThe contact's ID
stepOrdernumberThe step's position in the sequence
stepActionstringStep action type (e.g., StaticMessage, AIMessage, AgentTakeover)
channelstringStep delivery channel (sms, email, telephony)
conversationIdstringAssociated conversation ID (when applicable)
messagestringMessage sent for this step (when applicable)
errorMessagestringError details (failed steps only)
reasonstringSkip reason (skipped steps only)

Creating a Webhook

Go to Integrations → Event Subscriptions
Click Add Subscription
Enter the Endpoint URL — the URL DealerAI will POST event data to
Select the Events you want to subscribe to
Click Save — DealerAI will immediately start sending events to your endpoint

Webhook endpoints must be HTTPS and publicly accessible. DealerAI will retry failed deliveries up to three times before marking a delivery as failed.

On this page