Rest ADF XML Lead API

The Calldrip API enables you to send form and chat leads from your CRM system directly to Calldrip. When a lead is received, Calldrip converts it into a phone call and connects your sales team with potential customers within 30 seconds, resulting in more conversations and customer experience. Calldrip's REST APIs provide access to resources (data entities) via URI paths. To use a REST API, your application will make an HTTP request and parse the response. By default, the response format is JSON.

{primary} The ADF XML API allows lead data to be sent into your Calldrip account via POST method in ADF XML format.

Because the REST API is based on open standards, you can use any web development language to access the API.

{warning} Prerequisites — read before getting started

Two things must be in place before leads will be accepted:

  1. Integration enabled: Calldrip support must enable a setting on your account and register your Vendor Name or Vendor ID. Requests that do not match a registered vendor will return an error.
  2. Parsing rules configured: At least one ADF XML parsing rule must be configured for your account. Without a matching rule the lead will not be processed and will return a "No Rule Found" error.

Contact support@dcdw.nl to have these set up.

Getting Started


  1. Contact us at support@dcdw.nl (Phone: +31 318 798 500) to receive your Developer API Credentials.
  2. Have support enable the Netherlands integration on your account with your Vendor Name or Vendor ID.
  3. Have support configure ADF XML parsing rules for your account.
  4. Send test leads to your connected test account.
  5. Contact us when you receive a success message to verify the lead's success.
  6. Receive your Production API credentials.

API Endpoint


Endpoint: https://app.calldrip.eu/api/nl


The endpoint accepts POST requests. Sending a GET request will return a 404 error indicating that POST data is expected.

{warning} Important! Keep your API Key safe.

The returning result will be in JSON format. You will receive either a success or it will tell you the reason for the failure.

Payload Parameters


Content-Type header: Content-Type: multipart/form-data or Content-Type: application/x-www-form-urlencoded

Key Value
xml ADF/XML code goes here
apiuser API Username - created and shared by support
apikey API Key - created and shared by support

The apiuser and apikey parameters are required for authentication. The xml parameter should be a string containing the ADF XML payload (accepted parameters for XML are shown below in the table).

Parameter Description
<vendor><id sequence="1" source="dealerId">LEFTestDealerID001</id> This is the id that identifies the account. ​Calldrip must have this ID before leads can be sent to the correct account.
<prospect><id sequence="1" source="leadid"> This is a unique id that would come from the lead provider.
<prospect> <requesttype> Type of Request i.e. Sales, Service
<vehicle status="New"> This can be New or Used
<vehicle><year> This is the Year the Vehicle was made i.e. 2019
<vehicle><make> This is the make of the Vehicle i.e. Ford
<vehicle><model> This is the Model of the Vehicle i.e. Fusion
<vehicle><type> This is the Type of the Vehicle i.e. 2WD 2.0 VVT0IE Comfort
<vendorname> This is the Dealerships name
<provider><name part="full> This is the provider's name
<provider><service> This is the type of request (CTA)
<lms><name part="full"> This is the full name of the LMS system used to deliver the lead
<vehicle><license_plate> This is the license plate number of the vehicle
<vehicle><bodystyle> This is the Body style of the vehicle i.e. Coupe
<vehicle><fueltype> This is the Fuel type of the vehicle i.e. Diesel
<vehicle><comments> Comments about the vehicle
<customer><comments> Comments left by the customer
<provider><url> URL link to more lead information
<customer><whisper> Customer whisper to be read to the customer

Example XML Payload

Template:

<adf>
  <prospect>
    <id sequence="1">{YOUR_CRM_LEAD_ID} *required*</id>
    <vehicle interest="buy" status="used"> *optional* *default to status=used, if vehicle is new use status=new*
      <year>{VEHICLE_YEAR} *optional*</year>
      <make>{VEHICLE_MAKE} *optional*</make>
      <model>{VEHICLE_MODEL} *optional*</model>
      <vin>{VEHICLE_VIN} *optional*</vin>
      <license_plate>{LICENSE_PLATE} *optional*</license_plate>
      <stock>{STOCK_NUMBER} *optional*</stock>
      <trim>{TRIM} *optional*</trim>
      <doors>{NUMBER_OF_DOORS} *optional*</doors>
      <bodystyle>{BODY_STYLE} *optional*</bodystyle>
      <transmission>{TRANSMISSION} *optional*</transmission>
      <odometer units="km">{ODOMETER_KM} *optional*</odometer>
      <colorcombination>
        <interiorcolor>{INTERIOR_COLOR} *optional*</interiorcolor>
        <exteriorcolor>{EXTERIOR_COLOR} *optional*</exteriorcolor>
      </colorcombination>
      <price type="quote" currency="EUR">{QUOTE_PRICE_EUR} *optional*</price>
      <comments>{CUSTOMER_COMMENTS} *optional*</comments>
    </vehicle>
    <vehicle interest="trade-in" status="used"> *optional* *always use status=used*
      <year>{TRADEIN_YEAR} *optional*</year>
      <make>{TRADEIN_MAKE} *optional*</make>
      <model>{TRADEIN_MODEL} *optional*</model>
      <vin>{TRADEIN_VIN} *optional*</vin>
      <license_plate>{TRADEIN_LICENSE_PLATE} *optional*</license_plate>
      <trim>{TRADEIN_TRIM} *optional*</trim>
      <doors>{TRADEIN_DOORS} *optional*</doors>
      <bodystyle>{TRADEIN_BODY_STYLE} *optional*</bodystyle>
      <transmission>{TRADEIN_TRANSMISSION} *optional*</transmission>
      <odometer status="original" units="km">{TRADEIN_ODOMETER_KM} *optional*</odometer>
      <colorcombination>
        <interiorcolor>{TRADEIN_INTERIOR_COLOR} *optional*</interiorcolor>
        <exteriorcolor>{TRADEIN_EXTERIOR_COLOR} *optional*</exteriorcolor>
      </colorcombination>
      <price type="appraisal" currency="EUR">{TRADEIN_APPRAISAL_EUR} *optional*</price>
      <comments>{TRADEIN_NOTES} *optional*</comments>
    </vehicle>
    <customer>
      <contact>
        <name part="full">{CUSTOMER_FULL_NAME} *required* *default to empty string*</name>
        <email>{CUSTOMER_EMAIL} *optional*</email>
        <phone>{CUSTOMER_PHONE} *optional* *must be filled for setting up a phone call*</phone>
      </contact>
      <comments>{CUSTOMER_NOTES} *optional* *Put the message here the customer send in with the lead*</comments>
    </customer>
    <vendor>
      <id sequence="1" source="dealerId">{*CALLDRIP_DEALER_ID& GET THIS FROM support@dcdw.nl*} *required*</id>
      <vendorname>{DEALER_NAME} *required*</vendorname>
    </vendor>
    <provider>
      <id sequence="1" source="Used Vehicles"></id> *optional* *change "Used Vehicles" to the lead bucket/group/team your use in your CRM*
      <name part="full">{LEAD_SOURCE_NAME} *optional*</name>
      <service>{LEAD_TYPE} *optional*</service>
      <url>{LEAD_SOURCE_URL} *optional*</url>
    </provider>
    <lms>
      <name part="full">{YOUR CRM NAME} *optional*</name>
    </lms>
  </prospect>
</adf>

Example 1:

<adf>
    <prospect>
        <id sequence="1" source="leadid">6f69d7fe-a277-40c4-94a8-cbf8a66c1045</id> <requestdate>2018-05-29T16:12:14</requestdate> <requesttype>sales</requesttype>
        <vehicle status="New">
            <year>2018</year>
            <make>Ford</make>
            <model>Focus</model>
            <license_plate>XLZ_28</license_plate>
            <bodystyle>Coupe</bodystyle>
            <fueltype>Diesel</fueltype>
            <type>2WD 2.0 VVT-IE Comfort</type>
            <comments>Grey color is preferred</comments>
        </vehicle>
        <customer>
            <contact>
                <name part="full">John Doe</name>
                <phone time="" type="">31 999999999</phone>
                <language>nl-BE</language>
                <address>
                    <street line="1">Waalplein 128</street>
                    <city>Woudrichem</city>
                    <postalcode>4285CN</postalcode>
                    <country>NL</country>
                </address>
            </contact>
        </customer>
        <vendor>
            <id sequence="1" source="dealerId">TestDealerID001</id> <vendorname>TestDealer</vendorname>
            <contact>
                <name part="full">TestDealer</name>
            </contact>
        </vendor>
        <provider>
            <id sequence="1" source="sourcename">Source Name</id>
            <name part="full">sourcelead</name>
            <service>Please send me a brochure</service> <url>https://leadurl.nl/leads</url>
        </provider>
            <lms><name part="full">LMS name</name></lms>
    </prospect>
</adf>

Example 2:

<adf>
  <prospect>
    <id sequence="1">ghyf83h3hf8h8-3f8hfh2</id>
    <vehicle interest="buy" status="used">
      <year>2022</year>
      <make>Peugeot</make>
      <model>308</model>
      <vin></vin>
      <license_plate>HT699F</license_plate>
      <stock></stock>
      <trim></trim>
      <doors>5</doors>
      <bodystyle></bodystyle>
      <transmission></transmission>
      <odometer units="km">299000</odometer>
      <colorcombination>
        <interiorcolor>black</interiorcolor>
        <exteriorcolor>white</exteriorcolor>
      </colorcombination>
      <price type="quote" currency="EUR">12996</price>
      <comments></comments>
    </vehicle>
    <vehicle interest="trade-in" status="used">
      <year>2022</year>
      <make>Volkswagen</make>
      <model>Golf</model>
      <vin>7893893</vin>
      <license_plate>GT677D</license_plate>
      <trim></trim>
      <doors></doors>
      <bodystyle></bodystyle>
      <transmission></transmission>
      <odometer status="original" units="km"></odometer>
      <colorcombination>
        <interiorcolor></interiorcolor>
        <exteriorcolor></exteriorcolor>
      </colorcombination>
      <price type="appraisal" currency="EUR"></price>
      <comments></comments>
    </vehicle>
    <customer>
      <contact>
        <name part="full">Joris</name>
        <email>joris@dcdw.nl</email>
        <phone>+31628866642</phone>
      </contact>
      <comments>Hello I am looking for a car</comments>
    </customer>
    <vendor>
      <id sequence="1" source="dealerId">6498</id>
      <vendorname>Autobedrijf ABC</vendorname>
    </vendor>
    <provider>
      <id sequence="1" source="Used Vehicles"></id>
      <name>Cars.nl</name>
      <service>Chat</service>
      <url>https://cars.nl/chat/13687893</url>
    </provider>
    <lms>
      <name part="full">CRM NAME</name>
    </lms>
  </prospect>
</adf>

Request Example (curl)


curl --request POST \
  --url 'https://app.calldrip.eu/api/nl' \
  --header 'Content-Type: multipart/form-data' \
  --data '{
    "apiuser": "YOUR_API_USER",
    "apikey": "YOUR_API_KEY",
    "xml": "<adf><prospect>...</prospect></adf>"
  }'

Responses

Below are the different responses you may receive from the API as well as what to do if you receive an error.

No Account Found (404)

This error occurs when the vendor.name or vendor.id in the request does not match a vendor registered in Calldrip. Contact support to ensure your vendor is registered.

NOTE: lead is received, do not (re)send leads to Calldrip until your vendor is registered.

{ "reason": "No active account found!" }

No Rule Found (404)

This error occurs when the request does not match any ADF XML parsing rules configured for your account. Contact support to ensure parsing rules are configured for your account.

NOTE: lead is received, do not (re)send leads to Calldrip until parsing rules are configured.

{ "reason": "No parsing rule was found on the account for this lead." }

Do Not Process (200)

This error occurs when the request matches a parsing rule that is configured to not process leads. Contact support to ensure parsing rules are (properly) configured for your account.

NOTE: lead is received, do not (re)send leads to Calldrip until parsing rules are configured.

{ "reason": "Lead was successfully parsed as a Do Not Process lead." }

Other responses

API Username blank (403):

{ "reason": "API Username cannot be blank" }

API Key blank (403):

{ "reason": "API Key cannot be blank" }

API Credentials invalid (403):

{ "reason": "No account found with the given API username/password. Please check your credentials and try again." }

XML blank (403):

{ "reason": "XML cannot be blank" }

XML invalid (400):

{ "reason": "Unable to parse XML. Please check that the XML is well-formed and try again." }

Whisper/Notes

The Whisper is made up of these fields:

Request type, vehicle status, year, make, model, license plate, whisper

Notes are made up of these fields:

Request type, Vendor, vehicle status, year, make, model, license plate, body style, type fuel, vehicle comments, URL, Customer comments

More Info


Best Practices

Use Case (leads to send or not to send)

Enable Calldrip for:

  • Website contact forms
  • Live chat inquiries
  • Social media leads
  • Direct phone inquiries
  • Trade-in requests

Disable Calldrip for:

  • Email newsletter signups
  • Marketing campaign responses
  • Service appointment requests
  • Parts inquiries
  • General information requests

Lead Submission

  • Send leads immediately upon capture in your CRM
  • Send ALL sales leads, even those without phone numbers or outside working hours
  • Configure API connection at the source bucket level to control which lead types are sent

Data Quality

  • Include as many optional fields as possible for better user experience
  • Use consistent formatting for phone numbers and dates
  • Provide meaningful comments and lead source information

Security

  • Store API credentials securely in your database
  • Use HTTPS for all API calls
  • Consider data privacy - Calldrip purges customer data after 6 months by default, minimum 1 day

Testing

  1. Request Test Credentials (Email: support@dcdw.nl)
  2. Use Test Dealer ID (id: 6498) for all test leads. This isolates test data from production
  3. Test Data Guidelines
  • Use fictional customer information
  • Test various scenarios (new vs used vehicles, different sources)
  • Verify whisper content with different field combinations