> For the complete documentation index, see [llms.txt](https://docs.loopit.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.loopit.co/settings/integrations/dealer-studio/dealer-studio-leads-ingestion.md).

# Dealer Studio Leads ingestion

If you are using a Dealer Studio website, Loopit is capable of creating a person/lead and a booking via a webhook integration method.

This document outlines the technical and support requirements for integrating with the Loopit platform to automatically create leads and/or bookings via webhooks. The purpose of this integration is to ensure that leads generated from the partner system are seamlessly delivered into Loopit's platform with complete and accurate data.

### Webhook delivery

Dealer Studio will send data to the following endpoint;

Endpoint URL (Production): Contact support\
Request Method: POST\
Content Type: application/json

### Authorisation

To enable sending leads to Loopit an oAuth client must be configured.  To obtain the details please reach out to Loopit support.

### Field information

| Field                                     | Type                        | Description                                                               |
| ----------------------------------------- | --------------------------- | ------------------------------------------------------------------------- |
| **dealership**                            | **Object**                  |                                                                           |
| dealership.id                             | number                      | 356                                                                       |
| **prospect**                              | **Object**                  |                                                                           |
| prospect.first\_name                      | string                      |                                                                           |
| prospect.middle\_name                     | string                      |                                                                           |
| prospect.last\_name                       | string                      |                                                                           |
| prospect.email                            | string, required            |                                                                           |
| prospect.dob                              | string in format dd/mm/yyyy | 01/04/2000                                                                |
| prospect.mobile\_phone                    | string                      | 0412 123 123                                                              |
| prospect.opt\_in\_to\_marketing           | boolean                     | true                                                                      |
| **prospect.address**                      | **Object**                  |                                                                           |
| prospect.address.street                   | string                      | Elizabeth St                                                              |
| prospect.address.city                     | string                      | Sydney                                                                    |
| prospect.address.state                    | string                      | NSW (abbreviated version must be provided)                                |
| prospect.address.country                  | string                      | Australia                                                                 |
| prospect.address.postcode                 | string \| number            | 2000                                                                      |
| **additional\_details**                   | **Object**                  |                                                                           |
| additional\_details.license\_expiry       | string in format dd/mm/yyyy | 01/04/2000                                                                |
| additional\_details.license\_dob          | string in format dd/mm/yyyy | 01/04/2000                                                                |
| additional\_details.license\_number       | string \| number            | 12345678                                                                  |
| additional\_details.license\_card\_number | string \| number            | 12345678                                                                  |
| additional\_details.license\_state        | string                      | NSW (abbreviated version must be provided)                                |
| additional\_details.passport\_country     | string                      | <p>Australia OR 2 code one of the following;<br><br>au,us,fr,de,uk,ca</p> |
| additional\_details.passport\_expiry      | string in format dd/mm/yyyy | 01/04/2000                                                                |
| additional\_details.passport\_dob         | string in format dd/mm/yyyy | 01/04/2000                                                                |
| additional\_details.passport\_number      | string                      | PB12345678                                                                |
| additional\_details.subscription\_plan    | string                      | Premium                                                                   |
| **item**                                  | **Object**                  |                                                                           |
| item.vin                                  | string                      | XXX1234551232                                                             |
| item.stock\_number                        | string                      | DDF445                                                                    |
| **location**                              | **Object**                  |                                                                           |
| location.location\_name                   | string                      | Dealer A                                                                  |

### Validation rules

For a webhook to be processed it must map to a valid workspace within Loopit.  This is controlled by the dealership.id data point.  If this is not provided or is not configured within Loopit the webhook will not be processed.

For a person to be created in Loopit:

* A valid email address
* If DOB provided a correctly formatted DOB

For a booking to be created the following conditions must be met:

* item.vin OR item.stock\_number
  * Asset must be found
  * If not provided no booking will be created, the person will still be created in Loopit
  * Asset must not be archived
* location.location\_name
  * If no matching location name is found or not provided Loopit will take the *first* bookable location from the asset
  * A location must be found
* additional\_details.subscription\_plan
  * A valid package name that exactly matches a package name in Loopit
  * A package must be found

{% hint style="info" %}
A booking being created is optional, if bad data is provided or missing a person may still be created within Loopit.
{% endhint %}

For an address of the lead to be stored against the person in Loopit the following must be provided;

* prospect.address.street
* prospect.address.city
* prospect.address.state
* prospect.address.postcode
* prospect.address.country

For a driver licence to be stored against the person in Loopit the following must be provided:

* additional\_details.license\_number
* additional\_details.license\_expiry
* additional\_details.license\_dob

For a passport to be stored against the person in Loopit the following must be provided:

* additional\_details.passport\_number
* additional\_details.passport\_country
  * us, uk, fr, au, de, ca  - OR a full country name provided
* additional\_details.passport\_expiry
* additional\_details.passport\_dob

If a partially complete form is submitted e.g. the lead only contains email and name a person will be created.  If another webhook is received with further information Loopit will update the record, matching on email, and insert any additional information.

### Example payload

```json
{
    "id": 1759346,
    "lead_cluster_id": 1091776,
    "marketing_source": "Unknown",
    "utm_campaign": null,
    "provider": "Dealer Studio",
    "source": "Website",
    "category": "Subscription Enquiry",
    "location": {
      "street": "Elizabeth Street",
      "city": "Sydney",
      "state": "NSW",
      "postcode": 2000,
      "location_name": "Dealer A"
    },
    "prospect": {
      "title": null,
      "first_name": "John",
      "middle_name": "Middle",
      "last_name": "Smith",
      "email": "johnsmith@email.com",
      "postcode": 6050,
      "mobile_phone": "0403 123 123",
      "address": {
        "street": "Elizabeth Street",
        "city": "Sydney",
        "state": "NSW",
        "state_long": "New South Wales",
        "postcode": 2000,
        "country": "Australia"
      },
      "dob": null,
      "opt_in_to_marketing": false,
    },
    "comments": null,
    "created": "2025-10-03T06:10:08.144Z",
    "item": {
      "type": "car",
      "car_type": "used",
      "id": 230767,
      "vin": "JSAGJB74V00202326",
      "status": "In stock",
      "colour": "White",
      "body_type": "Hardtop",
      "stock_number": "7021602",
      "build_date": null,
      "transmission": "Automatic",
      "interior_color": "",
      "make": "Suzuki",
      "model": "Jimny",
      "badge": "GLX",
      "year": 2023,
      "rego": "123456",
      "price": 39500.0,
      "engine_size": 1462,
      "km": 15000.0,
      "series": "GJ",
      "comments": "",
      "url": "https://www.website.com.au/cars/xxx",
      "spin_code": null,
      "third_party_integrations": [
        { "service": "Loopit", "external_id": "59889" }
      ],
      "deposit": null
    },
    "lead_events": [],
    "additional_details": {
      "first_name": "John",
      "surname": "Smith",
      "marketing_opt_in": "true",
      "subpremise": 12,
      "street_number": 123,
      "suburb": "Sydney",
      "country": "Australia",
      "lead_status": "Complete",
      "subscription_plan": "Premium",
      "license_state": "NSW",
      "license_card_number": 9999999,
      "license_number": 1231231231,
      "license_dob": "10/10/1980",
      "license_expiry": "10/10/2029",
      "car_image": null,
      "vin": "XXXXXXXXXX",
      "subscription_price": 299,
      "minimum_days": 7,
      "km_included": 750,
      "join_fee": "$0",
      "identification_type": "drivers-license",
      "lead_id": 1759346
    },
    "subscription_plan": {
      "subscription_id": 4,
      "name": "Premium"
    },
    "updated_at": "2025-10-03T06:10:22.097Z",
    "subcategory": "unset",
    "dealership": { "id": 356, "name": "Dealer A", "slug": "dealer-a" },
    "website": {
      "id": 794,
      "name": "Dealer A",
      "url": "https://www.website.com.au",
      "slug": "dealera"
    },
    "lead_status_option": { "id": 995, "name": "new", "status_type": "new" }
  }
  
```

### Response codes

Loopit will always ingest a webhook from Dealer Studio and respond with a 200 code.  Ingestion of the webhook does ***not*** guarantee a lead/booking will be created if there are data/validation issues.

### Support issues

If issues arise (e.g. leads not appearing in Loopit), both support teams must be notified.

Please email both support teams:

* <support@loopit.co>
* <support@dealerstudio.com.au>

Email subject: \[Lead Integration] Issue - Leads not appearing in Loopit

Include:

* Example lead reference ID and email from Dealer Studio
* Approximate date/time

### Change management

Any schema changes must be communicated to both technical teams at least two weeks in advance. Loopit will maintain backward compatibility for at least 30 days, maximum 90 days, following any schema update.

**Version history**

| Version | Date             | Changes |
| ------- | ---------------- | ------- |
| 1       | 1st October 2025 | N/A     |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.loopit.co/settings/integrations/dealer-studio/dealer-studio-leads-ingestion.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
