AutoUncle CoDriver

Build your own integration

AutoUncle CoDriver follows up on a car dealer's leads around the clock. Your system can send those leads in, read what became of them, and hear about everything that happens next: new opportunities, customer replies, booked appointments, won and lost deals.

Everything is built on standards you already know, so you can use off-the-shelf tools:

What Standard
Authentication OAuth 2.1 client credentials, JWT access tokens
API contract OpenAPI 3.1, JSON Schema 2020-12
Errors RFC 9457 problem details (application/problem+json)
Safe retries Idempotency-Key header (IETF draft)
Rate limits RateLimit / RateLimit-Policy headers (IETF draft), 429 + Retry-After
Events CloudEvents 1.0, delivered as Standard Webhooks

Building with an AI coding agent? Give it the agent kit: one skill that walks it through the whole integration.

Quick start: your first lead in five minutes

You need an owner or admin login for the dealer's AutoUncle CoDriver organization. Build in a sandbox organization (ask your AutoUncle contact for one): it is in safe mode, so nothing you push reaches a customer, the dealer's CRM or a sales rep. A test lead is only a label and is otherwise processed in full, so in a live organization it would reach the customer, the dealer's CRM and the sales reps (see Testing).

1. Create an API lead source. Settings → Lead sources → Create lead source, type API. Copy its ID (src_…) from Settings → Developers → API lead sources.

2. Create an API client. Settings → Developers → Create application. Pick Two-way integration and tick Test client while you build. Copy the client ID and secret.

3. Get a token.

TOKEN=$(curl -s -X POST https://codriver.autouncle.com/oauth/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  --data-urlencode "grant_type=client_credentials" \
  --data-urlencode "scope=leads_write leads_read opportunities_read events_read" | jq -r .access_token)

4. Push a lead.

curl -s -X POST https://codriver.autouncle.com/api/v1/leads \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "lead_source_id": "src_019535d9-3df7-79fb-b466-fa907fa17f9e",
    "email": "anna@example.com",
    "name": "Anna Jensen",
    "message": "Is the Golf still for sale?",
    "external_reference": { "system": "my-crm", "id": "4711" }
  }'

AutoUncle CoDriver answers 202 Accepted with the lead's ID and a status_url.

5. Read what became of it. GET the status_url: within seconds the lead is processed and has an opportunity_id.

Then go further:

  • Push leads: every field, idempotency, your own references, test leads.
  • Read data: lead status, opportunities, appointments.
  • Webhooks: receive every event the moment it happens.
  • Events feed: poll the same events if you can't receive webhooks.
  • Testing: Test clients, test leads, test events.

The complete reference is the OpenAPI specification.

View this page as Markdown