Agentic Dealer Network

Live franchised-dealer inventory, quotes, and consented salesperson handoffs.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
96%
Vollständigkeit des Schemas
76%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (1)

  • LOWTool 'lead_prepare' description lacks action verbin lead_prepare

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~5,163Tokens (Tool-Definitionen)
~3.3 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (4.03% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "adn-gateway": {
      "url": "https://gateway.agenticdealernetwork.com/mcp"
    }
  }
}

Remote-Endpunkte

https://gateway.agenticdealernetwork.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (12)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢network_directory(country, limit, offset)

Directory of active ADN rooftops: slug, name, dealer group, OEM programs, location metadata, and per-rooftop manifest URL. Pass country=CA for Canadian dealers.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "enum": [
        "US",
        "CA"
      ],
      "default": "US",
      "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    }
  },
  "additionalProperties": false
}
🟢network_search(country, condition, make, model, body_style, ...)

Browse available inventory across the network, one page at a time. For counts or distributions call inventory_stats; to copy the catalog call network_snapshot (one download replaces hundreds of pages). Results are slim summary rows; embed hero_photo_url as a markdown image when presenting a vehicle, and call inventory_get with rooftop_slug for its full photo gallery. Optional OEM program scope; optional geographic radius — latitude and longitude together; radius_miles defaults to 50 (max 500) and needs both. Rooftops without coordinates are excluded from geo-scoped results. Pass country=CA for Canadian dealers. Listed prices may exclude doc/government fees and tax — call quote_preview for the estimated total. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "enum": [
        "US",
        "CA"
      ],
      "default": "US",
      "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles."
    },
    "condition": {
      "enum": [
        "new",
        "used"
      ]
    },
    "make": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "model": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "body_style": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "fuel_type": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "drivetrain": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "exterior_color": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "interior_color": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "transmission": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "trim": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "model_year_min": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "model_year_max": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "price_min": {
      "type": "number",
      "minimum": 0,
      "maximum": 99999999.99,
      "description": "Minimum expiry-gated effective price: an unexpired special price when present, otherwise asking price."
    },
    "price_max": {
      "type": "number",
      "minimum": 0,
      "maximum": 99999999.99,
      "description": "Maximum expiry-gated effective price: an unexpired special price when present, otherwise asking price."
    },
    "odometer_max": {
      "type": "integer",
      "minimum": 0
    },
    "passenger_capacity_min": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    },
    "is_certified": {
      "type": "boolean"
    },
    "oem_program_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "rooftop_slug": {
      "type": "string",
      "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$",
      "description": "Restrict results to one rooftop, as listed by network_directory. A slug that matches no rooftop returns no results rather than an error."
    },
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "radius_miles": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "sort": {
      "enum": [
        "price_asc",
        "price_desc",
        "year_desc",
        "mileage_asc",
        "distance"
      ],
      "description": "Optional ordering; defaults to price_asc. The sort key uses NULLS LAST and is deterministically terminated by rooftop and unit ids. distance requires latitude and longitude (radius_miles defaults to 50)."
    },
    "view": {
      "enum": [
        "summary",
        "manifest",
        "full"
      ],
      "default": "summary"
    },
    "format": {
      "enum": [
        "json",
        "csv"
      ],
      "default": "json"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "1–500 with view manifest; 1–50 for summary and full (server-enforced)"
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10000,
      "description": "Zero-based row offset. Results are totally ordered and stable for an unchanged catalog, but pagination is NOT snapshot-isolated: ingestion between two page requests shifts offsets, so a traversal may duplicate or omit rows. To copy the catalog consistently: record catalog_watermark AND total from the first page, compare both on every subsequent page, and restart the traversal if either changes. Narrowing by rooftop_slug shortens each traversal and so reduces the chance of a restart. Offsets beyond 10000 are rejected; narrow the query instead."
    }
  },
  "additionalProperties": false,
  "description": "Categorical arrays are ORed within their field; separate filter fields are ANDed together. The default ordering is price_asc. Server-enforced: latitude requires longitude; longitude requires latitude; radius_miles requires latitude and longitude. sort = distance requires latitude and longitude. Additional argument rules are enforced server-side."
}
🟢inventory_stats(country, condition, make, model, body_style, ...)

Aggregate available inventory across the network in ONE call: counts, effective-price min/median/max and the top values per facet. Example: {"dimensions": ["make_model", "body_style"], "condition": "used", "rooftop_slugs": ["mms"]}. Geo (latitude and longitude, optional radius_miles) and oem_program_slug scope exactly as network_search. Pivot mode (group_by, up to 2 of the facets plus state, dealer_group, price_band, age_band) returns one row per group with count and medians; dimensions and group_by are mutually exclusive; format csv returns the rows as CSV. Pass country=CA for Canadian dealers.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "enum": [
        "US",
        "CA"
      ],
      "default": "US",
      "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles."
    },
    "condition": {
      "enum": [
        "new",
        "used"
      ]
    },
    "make": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "model": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "body_style": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "fuel_type": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "drivetrain": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "exterior_color": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "interior_color": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "transmission": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        {
          "type": "array",
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        }
      ]
    },
    "trim": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "model_year_min": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "model_year_max": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "price_min": {
      "type": "number",
      "minimum": 0,
      "maximum": 99999999.99,
      "description": "Minimum expiry-gated effective price."
    },
    "price_max": {
      "type": "number",
      "minimum": 0,
      "maximum": 99999999.99,
      "description": "Maximum expiry-gated effective price."
    },
    "odometer_max": {
      "type": "integer",
      "minimum": 0
    },
    "passenger_capacity_min": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    },
    "is_certified": {
      "type": "boolean"
    },
    "oem_program_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "radius_miles": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "dimensions": {
      "type": "array",
      "minItems": 1,
      "maxItems": 4,
      "uniqueItems": true,
      "description": "One to four unique facets. make_model values join nonblank make and model with one space; rooftop values are rooftop slugs.",
      "items": {
        "enum": [
          "make",
          "model",
          "make_model",
          "condition",
          "body_style",
          "fuel_type",
          "drivetrain",
          "exterior_color",
          "model_year",
          "rooftop"
        ]
      }
    },
    "group_by": {
      "type": "array",
      "minItems": 1,
      "maxItems": 2,
      "uniqueItems": true,
      "items": {
        "enum": [
          "make",
          "model",
          "make_model",
          "condition",
          "body_style",
          "fuel_type",
          "drivetrain",
          "exterior_color",
          "model_year",
          "rooftop",
          "state",
          "dealer_group",
          "price_band",
          "age_band"
        ]
      }
    },
    "format": {
      "enum": [
        "json",
        "csv"
      ]
    },
    "rooftop_slugs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "uniqueItems": true,
      "description": "Restrict the single-snapshot aggregation to these network rooftops.",
      "items": {
        "type": "string",
        "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
      }
    }
  },
  "additionalProperties": false,
  "description": "Categorical arrays are ORed within their field; separate filter fields are ANDed together. Aggregation has no pagination or sorting input. Server-enforced: latitude requires longitude; longitude requires latitude; radius_miles requires latitude and longitude. Exactly one of dimensions | group_by is required. Additional argument rules are enforced server-side."
}
🟢inventory_get(identity, rooftop_slug)

Fetch one available unit by identity (VIN) from a named rooftop (rooftop_slug from network_search results). Returns the full detail shape — ordered photo gallery, options, plain-text description; embed the first few photo_urls as markdown images when presenting the vehicle. Unknown or ineligible identity/rooftop returns unit_not_found. Listed prices may exclude doc/government fees and tax — call quote_preview for the estimated total. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "identity": {
      "type": "string",
      "minLength": 5,
      "maxLength": 30
    },
    "rooftop_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "required": [
    "identity",
    "rooftop_slug"
  ],
  "additionalProperties": false
}
🟢network_snapshot(country, rooftop_slug, view, format)

Export the whole network catalog (or one rooftop with rooftop_slug) as one gzip artifact instead of paging: returns a descriptor with a generation URL, strong ETag, row and byte counts, expiry and (when available) sync_cursor; small results are inlined as rows_inline. Views: manifest (identity, pricing, key attributes; default), summary (the network_search row), full (the inventory_get row). Formats: csv (default), json. Example: {"view": "manifest", "format": "csv"}. Re-download only when the ETag changes; poll inventory_changes with sync_cursor to stay current. Pass country=CA for Canadian dealers.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "enum": [
        "US",
        "CA"
      ],
      "default": "US",
      "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles."
    },
    "rooftop_slug": {
      "type": "string",
      "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
    },
    "view": {
      "enum": [
        "manifest",
        "summary",
        "full"
      ],
      "default": "manifest"
    },
    "format": {
      "enum": [
        "csv",
        "json"
      ],
      "default": "csv"
    }
  },
  "additionalProperties": false
}
🟢inventory_changes(cursor, view, country, rooftop_slug)

State synchronization for a mirror built from network_snapshot: pass the sync_cursor and receive upserts (current rows in the same view) and tombstones since that position, with has_more and next_cursor. Bounded eventual consistency: take a fresh snapshot at least every 24 hours and whenever resync_required is true. Example: {"cursor": "<sync_cursor from network_snapshot>"}. Pass country=CA for Canadian dealers.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "cursor": {
      "type": "string",
      "minLength": 8,
      "maxLength": 2048
    },
    "view": {
      "enum": [
        "manifest",
        "summary",
        "full"
      ]
    },
    "country": {
      "type": "string",
      "enum": [
        "US",
        "CA"
      ],
      "default": "US",
      "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles."
    },
    "rooftop_slug": {
      "type": "string",
      "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
    }
  },
  "required": [
    "cursor"
  ],
  "additionalProperties": false
}
🟢inventory_comparables(country, currency, identity, make, model, ...)

Price context for one vehicle against like units across the network (same make, model, exact model year, condition; optional trim and geo). Example: {"identity": "<VIN>", "rooftop_slug": "mms"} or {"make": "Subaru", "model": "Outback", "model_year": 2024, "condition": "used"}. Returns count, price quartiles, the subject's rank and up to 5 cheapest peers. Advertised prices only; call quote_preview for a total. Pass country=CA for Canadian dealers.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "enum": [
        "US",
        "CA"
      ],
      "default": "US",
      "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles."
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$"
    },
    "identity": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "make": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "model": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "model_year": {
      "type": "integer",
      "minimum": 1950,
      "maximum": 2100
    },
    "trim": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "rooftop_slug": {
      "type": "string",
      "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
    },
    "condition": {
      "enum": [
        "new",
        "used"
      ]
    },
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "radius_miles": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "model_year_expand": {
      "type": "integer",
      "enum": [
        0,
        1
      ],
      "default": 0
    }
  },
  "additionalProperties": false,
  "description": "Server-enforced: latitude requires longitude; longitude requires latitude; radius_miles requires latitude and longitude. Exactly one of identity | make+model+model_year is required. Additional argument rules are enforced server-side."
}
🟢stores(rooftop_slug)

One named rooftop's store record: name, dealer group, OEM programs, location/contact metadata, and fee schedule. Pass rooftop_slug. Whether a specific unit's listed price already includes a fee varies per unit — quote_preview returns the estimated total. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "rooftop_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "required": [
    "rooftop_slug"
  ],
  "additionalProperties": false
}
🟢quote_preview(identity, rooftop_slug)

Read-only out-the-door price preview for one available unit at a named rooftop (pass rooftop_slug): base price plus itemized fees and taxes — fees already included in the listed price are flagged included_in_price and add nothing on top. Persists nothing; free to call while browsing. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "identity": {
      "type": "string",
      "minLength": 5,
      "maxLength": 30
    },
    "rooftop_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "required": [
    "identity",
    "rooftop_slug"
  ],
  "additionalProperties": false
}
🔴deal_quote(identity, rooftop_slug, idempotency_key)

Out-the-door quote for one available unit at a named rooftop. Anonymous calls are stateless; authenticated calls persist a deal thread. Anonymous calls persist nothing; quote_preview is the read-only equivalent for browsing. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "identity": {
      "type": "string",
      "minLength": 5,
      "maxLength": 30
    },
    "rooftop_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Required when authenticated (durable quote); ignored meaningfully only with an agent key."
    }
  },
  "required": [
    "identity",
    "rooftop_slug"
  ],
  "additionalProperties": false
}
🟢lead_prepare(rooftop_slug, unit_identity, customer, channels, comments)

Prepare a named dealership's exact contact disclosure and a short-lived signed binding.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "rooftop_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "unit_identity": {
      "type": "string",
      "minLength": 5,
      "maxLength": 30
    },
    "customer": {
      "type": "object",
      "required": [
        "name"
      ],
      "anyOf": [
        {
          "required": [
            "email"
          ]
        },
        {
          "required": [
            "phone"
          ]
        }
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "email": {
          "type": "string",
          "minLength": 6,
          "maxLength": 254,
          "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
        },
        "phone": {
          "type": "string",
          "minLength": 7,
          "maxLength": 30,
          "pattern": "^(?=(?:[^0-9]*[0-9]){7,15}[^0-9]*$)\\+?[0-9()\\-. ]+$"
        }
      }
    },
    "channels": {
      "type": "array",
      "minItems": 1,
      "maxItems": 2,
      "uniqueItems": true,
      "items": {
        "enum": [
          "email",
          "phone"
        ]
      }
    },
    "comments": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "rooftop_slug",
    "unit_identity",
    "customer",
    "channels"
  ],
  "additionalProperties": false,
  "description": "customer.email requires channels to include email. customer.phone requires channels to include phone."
}
🔴lead_submit(rooftop_slug, binding, disclosure_text, customer, comments)

Submit the shopper's bound contact request to the named dealership.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "rooftop_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "binding": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384
    },
    "disclosure_text": {
      "type": "string",
      "minLength": 10,
      "maxLength": 5000
    },
    "customer": {
      "type": "object",
      "required": [
        "name"
      ],
      "anyOf": [
        {
          "required": [
            "email"
          ]
        },
        {
          "required": [
            "phone"
          ]
        }
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "email": {
          "type": "string",
          "minLength": 6,
          "maxLength": 254,
          "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
        },
        "phone": {
          "type": "string",
          "minLength": 7,
          "maxLength": 30,
          "pattern": "^(?=(?:[^0-9]*[0-9]){7,15}[^0-9]*$)\\+?[0-9()\\-. ]+$"
        }
      }
    },
    "comments": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "rooftop_slug",
    "binding",
    "disclosure_text",
    "customer"
  ],
  "additionalProperties": false
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet12 Tools
verifiziertVersion nicht aufgezeichnet12 Tools