{
  "name": "My workflow",
  "nodes": [
    {
      "parameters": {
        "content": "## Assistente AI per Host Airbnb \ud83c\udfe0\n\n**Un agente AI intelligente che supporta i tuoi ospiti in italiano**\n\n### Per iniziare:\n1. **Configura OpenAI** con la tua API key di ChatGPT-4o\n2. **Configura Google Sheets** con le tue informazioni sulla propriet\u00e0\n3. **Clicca su \ud83d\udde8\ufe0f Open chat** per testare l'assistente\n\n### L'agente pu\u00f2:\n- \u2705 Rispondere a domande su check-in/check-out\n- \u2705 Fornire informazioni su servizi e WiFi\n- \u2705 Dare consigli locali e raccomandazioni\n- \u2705 Gestire richieste di assistenza\n- \u2705 Escalare problemi complessi all'host\n- \u2705 Cercare informazioni aggiornate online\n\n### Esempi di domande:\n- \"Qual \u00e8 la password del WiFi?\"\n- \"A che ora posso fare il check-out?\"\n- \"Dove posso trovare un buon ristorante?\"\n- \"Ho un problema con il riscaldamento\"\n\n*Buona automazione! \ud83e\udd16*",
        "height": 648,
        "width": 420
      },
      "id": "83a2961c-2fa4-474a-b625-ae541f7b2150",
      "name": "Nota Introduttiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        -64
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "\ud83d\udca1 Dopo aver testato, puoi attivare il workflow e condividere l'URL pubblico della chat per permettere agli ospiti di chattare con l'assistente!",
        "height": 252,
        "width": 300,
        "color": 7
      },
      "id": "4c227e59-3e87-4ba5-8134-28f5c1e3ddbe",
      "name": "Nota Condivisione",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        80
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "Il tuo agente AI pu\u00f2:\n1. **Ricevere** messaggi dalla chat interface\n2. **Consultare** Google Sheets per info propriet\u00e0\n3. **Cercare** informazioni online aggiornate\n4. **Registrare** problemi su Google Sheets\n5. **Rispondere** con informazioni utili\n6. **Ricordare** conversazioni precedenti\n\n**Apri il nodo Assistente** e modifica il **Messaggio di Sistema** per personalizzare comportamento e personalit\u00e0.",
        "height": 348,
        "width": 396,
        "color": 7
      },
      "id": "c3936089-b30a-45b2-996b-9c60374c02d3",
      "name": "Come Funziona",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        -64
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "Questo nodo aiuta l'agente a ricordare le conversazioni per fornire risposte coerenti e personalizzate.",
        "height": 260,
        "width": 308,
        "color": 7
      },
      "id": "fa1c6f79-ca44-4e4b-bf12-fdb1e2392d2b",
      "name": "Info Memoria",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        416
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "options": {
          "systemMessage": "=<ruolo>\nSei l'Assistente AI per Host Airbnb, un assistente amichevole e competente progettato per supportare gli ospiti di una propriet\u00e0 Airbnb. La tua personalit\u00e0 \u00e8 calorosa, professionale e orientata all'ospitalit\u00e0.\n\nImportante: Comunichi sempre nella lingua che usa l'utente!!!\nSe l'utente ti scrive in inglese rispondi in inglese. Se scrive in italiano rispondi n italiano!\nSempre con un tono accogliente e professionale.\n</ruolo>\n\n<istruzioni>\n<obiettivo>\nIl tuo obiettivo principale \u00e8 assistere gli ospiti Airbnb fornendo:\n- Informazioni accurate sulla propriet\u00e0 (check-in/out, WiFi, regole)\n- Dettagli su servizi e amenit\u00e0 disponibili\n- Raccomandazioni locali (ristoranti, attrazioni, trasporti)\n- Supporto per problemi tecnici di base\n- Informazioni meteo e di viaggio\n- Gestione e registrazione di problemi che necessitano attenzione dell'host\n</obiettivo>\n\n<strumenti_disponibili>\nHai accesso a questi strumenti che DEVI utilizzare quando appropriato:\n\n1. **Leggi Informazioni Propriet\u00e0**: Per informazioni su check-in/out, WiFi, regole della casa, contatti di emergenza\n2. **Leggi Servizi e Amenit\u00e0**: Per dettagli su cucina, lavatrice, parcheggio, aria condizionata, ecc.\n3. **Leggi Servizi Locali**: Per raccomandazioni su ristoranti, attrazioni, trasporti locali\n4. **Registra Problema Ospite**: Per registrare problemi che richiedono attenzione dell'host\n5. **Cerca su Internet**: Per informazioni aggiornate, notizie, eventi, orari o un ampia scelta di servizi\nIMPORTANTE: gli strumenti vanno sempre chiamati in italiano!\n\n### Quando Usare gli Strumenti\n- Se l'ospite chiede informazioni sulla propriet\u00e0 \u2192 usa \"Leggi Informazioni Propriet\u00e0\"\n- Se chiede di servizi/amenit\u00e0 \u2192 usa \"Leggi Servizi e Amenit\u00e0\"\n- Se chiede raccomandazioni locali \u2192 usa \"Leggi Servizi Locali\"\n- Se riporta un problema \u2192 usa \"Registra Problema Ospite\"\n- Se ha bisogno di info aggiornate \u2192 usa \"SerpAPI per fare una ricerca su google. Assicurati di usare sempre la citta' di Como by default se non menzionata dal guest\"\n</strumenti_disponibili>\n\n<gestione_problemi>\n### Escalation Immediata (usa sempre \"Registra Problema Ospite\")\n- **Emergenze**: problemi di sicurezza, medici, allagamenti\n- **Manutenzione**: perdite, riscaldamento/AC rotto, problemi elettrici, serrature\n- **Reclami**: insoddisfazione, problemi di pulizia, vicini rumorosi\n- **Situazioni complesse**: tutto ci\u00f2 che non riesci a risolvere immediatamente\n\n### Livelli di Priorit\u00e0\n- **Urgente**: Emergenze, sicurezza, problemi gravi\n- **Alta**: Manutenzione importante, reclami ospiti\n- **Media**: Problemi minori, richieste speciali\n- **Bassa**: Domande informative, suggerimenti\n</gestione_problemi>\n\n<stile_comunicazione>\n### Come Rispondere\n- Usa sempre un tono **amichevole, caloroso e professionale** \ud83d\ude0a\n- **Saluta cordialmente** gli ospiti\n- Usa poche **emoji appropriate** per rendere la comunicazione pi\u00f9 accogliente \ud83c\udfe0 \u2705 \ud83c\udf1f\n- **Sii proattivo**: offri informazioni aggiuntive utili\n- **Rassicura** gli ospiti che i loro problemi sono importanti\n- **Ringrazia** per aver scelto la propriet\u00e0\n\n### Esempi di Risposte\n- \"Ciao! Benvenuto/a nella nostra propriet\u00e0! \ud83d\ude0a Sar\u00f2 felice di aiutarti con...\"\n- \"Perfetto! Ho registrato la tua richiesta e l'host sar\u00e0 contattato immediatamente. Nel frattempo...\"\n- \"Lasciami controllare le informazioni pi\u00f9 aggiornate per te... \ud83d\udd0d\"\n</stile_comunicazione>\n\n<conoscenze_base>\n### Informazioni Generali Airbnb\n- Check-in standard: solitamente 15:00-16:00\n- Check-out standard: solitamente 10:00-11:00\n- Sempre consultare gli strumenti per informazioni specifiche della propriet\u00e0\n\n### Data e Ora Corrente\n{{ $now }}\n</conoscenze_base>\n\n<formato_output>\n- **Sempre nella lingua del guest ** \n- **Usa gli strumenti** prima di rispondere quando necessario\n- **Presenta i risultati** in modo chiaro e organizzato\n- **Sii specifico** nelle raccomandazioni\n- **Offri alternative** quando possibile\n- **Conferma sempre** quando registri un problema\n</formato_output>\n\nComunichi sempre nella lingua che usa l'utente!!!\n\n</istruzioni>"
        }
      },
      "id": "286ce8ae-0d0a-498e-9f8c-af3dee56a85e",
      "name": "Assistente AI Airbnb",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1056,
        176
      ],
      "typeVersion": 2.2
    },
    {
      "parameters": {
        "public": true,
        "initialMessages": "Ciao! Sono Giorgio, il tuo super host virtuale!",
        "options": {
          "inputPlaceholder": "Qual \u00e8 la password del wifi? ",
          "showWelcomeScreen": true,
          "subtitle": "Chiedi qualsiasi cosa! 24/7.",
          "title": "Ciao sono il tuo host! \ud83d\udc4b",
          "customCss": ":root {\n  /* Colors */\n  --chat--color-primary: #e74266;\n  --chat--color-primary-shade-50: #db4061;\n  --chat--color-primary-shade-100: #cf3c5c;\n  --chat--color-secondary: #20b69e;\n  --chat--color-secondary-shade-50: #1ca08a;\n  --chat--color-white: #ffffff;\n  --chat--color-light: #f2f4f8;\n  --chat--color-light-shade-50: #e6e9f1;\n  --chat--color-light-shade-100: #c2c5cc;\n  --chat--color-medium: #d2d4d9;\n  --chat--color-dark: #101330;\n  --chat--color-disabled: #777980;\n  --chat--color-typing: #404040;\n\n  /* Base Layout */\n  --chat--spacing: 1rem;\n  --chat--border-radius: 0.25rem;\n  --chat--transition-duration: 0.15s;\n  --chat--font-family: (\n    -apple-system,\n    BlinkMacSystemFont,\n    'Segoe UI',\n    Roboto,\n    Oxygen-Sans,\n    Ubuntu,\n    Cantarell,\n    'Helvetica Neue',\n    sans-serif\n  );\n\n  /* Window Dimensions */\n  --chat--window--width: 400px;\n  --chat--window--height: 600px;\n  --chat--window--bottom: var(--chat--spacing);\n  --chat--window--right: var(--chat--spacing);\n  --chat--window--z-index: 9999;\n  --chat--window--border: 1px solid var(--chat--color-light-shade-50);\n  --chat--window--border-radius: var(--chat--border-radius);\n  --chat--window--margin-bottom: var(--chat--spacing);\n\n  /* Header Styles */\n  --chat--header-height: auto;\n  --chat--header--padding: var(--chat--spacing);\n  --chat--header--background: var(--chat--color-dark);\n  --chat--header--color: var(--chat--color-light);\n  --chat--header--border-top: none;\n  --chat--header--border-bottom: none;\n  --chat--header--border-left: none;\n  --chat--header--border-right: none;\n  --chat--heading--font-size: 2em;\n  --chat--subtitle--font-size: inherit;\n  --chat--subtitle--line-height: 1.8;\n\n  /* Message Styles */\n  --chat--message--font-size: 1rem;\n  --chat--message--padding: var(--chat--spacing);\n  --chat--message--border-radius: var(--chat--border-radius);\n  --chat--message-line-height: 1.5;\n  --chat--message--margin-bottom: calc(var(--chat--spacing) * 1);\n  --chat--message--bot--background: var(--chat--color-white);\n  --chat--message--bot--color: var(--chat--color-dark);\n  --chat--message--bot--border: none;\n  --chat--message--user--background: var(--chat--color-secondary);\n  --chat--message--user--color: var(--chat--color-white);\n  --chat--message--user--border: none;\n  --chat--message--pre--background: rgba(0, 0, 0, 0.05);\n  --chat--messages-list--padding: var(--chat--spacing);\n\n  /* Toggle Button */\n  --chat--toggle--size: 64px;\n  --chat--toggle--width: var(--chat--toggle--size);\n  --chat--toggle--height: var(--chat--toggle--size);\n  --chat--toggle--border-radius: 50%;\n  --chat--toggle--background: var(--chat--color-primary);\n  --chat--toggle--hover--background: var(--chat--color-primary-shade-50);\n  --chat--toggle--active--background: var(--chat--color-primary-shade-100);\n  --chat--toggle--color: var(--chat--color-white);\n\n  /* Input Area */\n  --chat--textarea--height: 50px;\n  --chat--textarea--max-height: 30rem;\n  --chat--input--font-size: inherit;\n  --chat--input--border: 0;\n  --chat--input--border-radius: 0;\n  --chat--input--padding: 0.8rem;\n  --chat--input--background: var(--chat--color-white);\n  --chat--input--text-color: initial;\n  --chat--input--line-height: 1.5;\n  --chat--input--placeholder--font-size: var(--chat--input--font-size);\n  --chat--input--border-active: 0;\n  --chat--input--left--panel--width: 2rem;\n\n  /* Button Styles */\n  --chat--button--color: var(--chat--color-light);\n  --chat--button--background: var(--chat--color-primary);\n  --chat--button--padding: calc(var(--chat--spacing) * 1 / 2) var(--chat--spacing);\n  --chat--button--border-radius: var(--chat--border-radius);\n  --chat--button--hover--color: var(--chat--color-light);\n  --chat--button--hover--background: var(--chat--color-primary-shade-50);\n  --chat--close--button--color-hover: var(--chat--color-primary);\n\n  /* Send and File Buttons */\n  --chat--input--send--button--background: var(--chat--color-white);\n  --chat--input--send--button--color: var(--chat--color-light);\n  --chat--input--send--button--background-hover: var(--chat--color-primary-shade-50);\n  --chat--input--send--button--color-hover: var(--chat--color-secondary-shade-50);\n  --chat--input--file--button--background: var(--chat--color-white);\n  --chat--input--file--button--color: var(--chat--color-secondary);\n  --chat--input--file--button--background-hover: var(--chat--input--file--button--background);\n  --chat--input--file--button--color-hover: var(--chat--color-secondary-shade-50);\n  --chat--files-spacing: 0.25rem;\n\n  /* Body and Footer */\n  --chat--body--background: var(--chat--color-light);\n  --chat--footer--background: var(--chat--color-light);\n  --chat--footer--color: var(--chat--color-dark);\n}\n\n\n/* You can override any class styles, too. Right-click inspect in Chat UI to find class to override. */\n.chat-message {\n\tmax-width: 50%;\n}"
        }
      },
      "id": "e2ca16d0-b0fc-4e70-a6a9-bbb55d0ddf8d",
      "name": "Chat Interface",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        688,
        176
      ],
      "typeVersion": 1.1
    },
    {
      "parameters": {
        "contextWindowLength": 50
      },
      "id": "4759d74f-3be8-4756-aecb-ee67fb154185",
      "name": "Memoria Conversazioni",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1120,
        528
      ],
      "typeVersion": 1.3
    },
    {
      "parameters": {
        "model": "gpt-4o",
        "options": {
          "maxTokens": 1500,
          "temperature": 0.3
        }
      },
      "id": "b378dbc4-fe06-4eff-9c90-043552614d5e",
      "name": "ChatGPT-4o",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        832,
        528
      ],
      "typeVersion": 1,
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "### \ud83d\udd27 Configurazione OpenAI ChatGPT-4o\n\n1. Ottieni la tua API key da [OpenAI Platform](https://platform.openai.com/api-keys)\n\n2. Apri il nodo **ChatGPT-4o**:\n   * Clicca su **Credenziali**\n   * Seleziona **Crea Nuova**\n   * Incolla la **API Key**\n   * **Salva**\n\n3. Verifica che il modello sia **gpt-4o**",
        "height": 364,
        "width": 358,
        "color": 3
      },
      "id": "27fb5b7c-513c-49ee-8cc4-ad2d6ccfc64b",
      "name": "Config OpenAI",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        416
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "content": "### \ud83d\udee0\ufe0f Strumenti dell'Agente\n\nL'agente ha accesso a 2 strumenti potenti:\n\n\ud83c\udfe0 **Google Sheets Tools:**\n- Leggi Informazioni Propriet\u00e0\n- Leggi Servizi e Amenit\u00e0  \n- Leggi Servizi Locali\n- Registra Problema Ospite\n\n\ud83c\udf10 **Internet Tools:**\n- Cerca su Internet (Google)\n\n",
        "height": 284,
        "width": 400,
        "color": 4
      },
      "id": "47896b55-38fe-47a3-9f9d-e40b0ea4083c",
      "name": "Strumenti Configurati",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -32
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Ottieni informazioni su questo airbnb per rispondere in modo accurato al ospite. ",
        "documentId": {
          "__rl": true,
          "value": "1_NpOAFQDJZ7eVvOyc8vLryZWiv54dD6TRoJ057P3hiI",
          "mode": "list",
          "cachedResultName": "Airbnb_Info",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_NpOAFQDJZ7eVvOyc8vLryZWiv54dD6TRoJ057P3hiI/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet', ``, 'string') }}",
          "mode": "name"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.7,
      "position": [
        1408,
        448
      ],
      "id": "dc9c25be-3696-4593-a934-62f2a1c54e60",
      "name": "Get row(s) in sheet in Google Sheets",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.toolSerpApi",
      "typeVersion": 1,
      "position": [
        1568,
        448
      ],
      "id": "8868cfd6-cf5c-4a99-b5ca-78784f2d0763",
      "name": "SerpAPI",
      "credentials": {
        "serpApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Chat Interface": {
      "main": [
        [
          {
            "node": "Assistente AI Airbnb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ChatGPT-4o": {
      "ai_languageModel": [
        [
          {
            "node": "Assistente AI Airbnb",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Memoria Conversazioni": {
      "ai_memory": [
        [
          {
            "node": "Assistente AI Airbnb",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet in Google Sheets": {
      "ai_tool": [
        [
          {
            "node": "Assistente AI Airbnb",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "SerpAPI": {
      "ai_tool": [
        [
          {
            "node": "Assistente AI Airbnb",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7fde066f-381c-44c1-a77c-35661a4a3d1b",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "cYRB1xkUeQQTwMnY",
  "tags": []
}