Agentic Dealer Network

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

사용해야 할까요

품질 및 안전성

A
설명 품질
96%
스키마 완전성
76%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'lead_prepare' description lacks action verblead_prepare에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~5,163토큰 (도구 정의)
~3.3 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 4.03%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

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

원격 엔드포인트

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

할 수 있는 일

도구 목록

도구 (12)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 12개
검증됨버전이 기록되지 않음도구 12개