{
  "_mire_valo": "Az 1. videóban felvett három VAPI tool. A leírásokban SZÁNDÉKOSAN benne van az is, hogy MIKOR NE hívja a toolt — a videóban ezt emeld ki, mert ez javít a legtöbbet a viselkedésen.",

  "_webhook": "https://<a te n8n példányod>/webhook/voys/video-01",
  "_webhook_csapdak": [
    "Mind a három tool UGYANARRA a webhookra megy. Egy Switch osztja szét a tool neve szerint. Külön workflow-nál a platform összekeveri, melyik tool-hívás melyikhez tartozik.",
    "A TEST URL-t soha ne használd: egyetlen futás után leáll, egy valódi hívás pedig toolt tool után láncol.",
    "A felület által mutatott, webhookId-előtaggal ellátott URL 404-et dob. A regisztrált útvonal a sima path."
  ],

  "toolok": [
    {
      "type": "function",
      "function": {
        "name": "check_availability",
        "description": "Lekérdezi a szabad érkezési ablakokat. Mindig ezt hívd, mielőtt időpontot ajánlasz — soha ne találj ki időpontot. HÍVD MEG AZONNAL, amint tudod a munka típusát, és a hívó időpontról kérdez. Nem kell hozzá cím, bejutási adat vagy teljes hibaleírás: az egyetlen kötelező paraméter a munkatipus. NE hívd, ha a cím a szolgáltatási területen kívül esik, és NE hívd sürgős esetben — ott a log_lead a helyes tool.",
        "parameters": {
          "type": "object",
          "properties": {
            "munkatipus": {
              "type": "string",
              "description": "A munka típusa, amit a hívó kért. Például: javitas, tisztitas, karbantartas, telepites."
            }
          },
          "required": ["munkatipus"]
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "book_appointment",
        "description": "Lefoglal egy konkrét érkezési ablakot. Csak akkor hívd, ha a hívó egy KONKRÉT, a check_availability által visszaadott ablakot elfogadott, és megvan a neve, a telefonszáma és a címe. A kezdet mezőbe PONTOSAN azt az azonosítót add vissza, amit a check_availability szögletes zárójelben visszaadott — ne fogalmazd át és ne számold újra.",
        "parameters": {
          "type": "object",
          "properties": {
            "munkatipus": { "type": "string", "description": "A munka típusa." },
            "kezdet":     { "type": "string", "description": "A check_availability által SZÖGLETES ZÁRÓJELBEN visszaadott azonosító, szó szerint. Ne fogalmazd át, ne számold újra." },
            "nev":        { "type": "string", "description": "A hívó neve." },
            "telefon":    { "type": "string", "description": "Visszahívási telefonszám." },
            "cim":        { "type": "string", "description": "A helyszín címe, ahogy a hívó megadta." },
            "megjegyzes": { "type": "string", "description": "Bejutási adat, emelet, kapukód, vagy a hiba rövid leírása." }
          },
          "required": ["munkatipus", "kezdet", "nev", "telefon", "cim"]
        }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "log_lead",
        "description": "Rögzít egy visszahívási kérést. Ezt hívd, ha nem születik foglalás: árajánlat-kérésnél, sürgős esetnél, szolgáltatási területen kívüli címnél, ha a naptár nem érhető el, vagy ha a hívó meggondolja magát. Sürgős esetben az ok mezőbe írd: SURGOS.",
        "parameters": {
          "type": "object",
          "properties": {
            "ok":      { "type": "string", "description": "Miért nem lett foglalás: arajanlat, SURGOS, teruleten_kivul, rendszerhiba, meggondolta." },
            "nev":     { "type": "string", "description": "A hívó neve." },
            "telefon": { "type": "string", "description": "Visszahívási telefonszám." },
            "uzenet":  { "type": "string", "description": "A hívó kérése a SAJÁT szavaival, egy-két mondatban." }
          },
          "required": ["ok", "nev", "telefon", "uzenet"]
        }
      }
    }
  ],

  "_vapi_valasz_formatum": {
    "_megjegyzes": "Ezt kell az n8n Respond to Webhook node-jának visszaadnia. A toolCallId-nak egyeznie kell a beérkezővel, különben a bot úgy viselkedik, mintha a tool sosem válaszolt volna: vár, aztán improvizál.",
    "results": [
      { "toolCallId": "<a beérkező message.toolCalls[0].id>", "result": "<amit a bot lát — ő fogalmazza meg belőle a mondatot>" }
    ]
  }
}
