{
  "name": "Client proposal generator with GPT-4o, Tally.so, and Google Slides for agencies",
  "nodes": [
    {
      "id": "375027bb-d9a6-4e9e-ba2e-dc9d75054de9",
      "name": "Replace text",
      "type": "n8n-nodes-base.googleSlides",
      "position": [
        1920,
        -288
      ]
    },
    {
      "id": "c1619d6b-0cb2-4eef-88f1-1c95ee991962",
      "name": "Presentation Generator",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        464,
        -288
      ]
    },
    {
      "id": "c2238623-3aa5-433d-a5a6-7a46b6050b6f",
      "name": "Draft Email (Text)",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2384,
        -288
      ]
    },
    {
      "id": "746bf813-f220-404e-aa27-9968e289cdd2",
      "name": "Copy Template",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1376,
        -288
      ]
    },
    {
      "id": "c5f90f37-c5d3-4afe-b03c-b2b32ddbf4a1",
      "name": "Set Date Format",
      "type": "n8n-nodes-base.code",
      "position": [
        912,
        -288
      ]
    },
    {
      "id": "215e7693-d906-4553-95fc-134ce1438581",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        80,
        -288
      ]
    },
    {
      "id": "498388b1-dec3-4963-a3ae-3606201bf7ba",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -896,
        -432
      ],
      "parameters": {
        "width": 448,
        "height": 400,
        "content": "## Overview\n\nThis workflow is designed for situations where you’ve just finished a meeting with a potential client and need to generate a professional proposal within minutes.\n\nUsing the notes or key "
      }
    },
    {
      "id": "b9c2ea9e-bcd3-4b5c-bcc5-76de13875942",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1424,
        -656
      ],
      "parameters": {
        "width": 448,
        "height": 832,
        "content": "## How It Works\nThis workflow uses Tally.so to collect client input that you input yourself during the meeting or after from a simple form and send that data to n8n via an API webhook. Once received, "
      }
    },
    {
      "id": "5d561d8b-1da5-4091-a564-ccdfc0e00c17",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        -480
      ],
      "parameters": {
        "width": 320,
        "height": 352,
        "content": "## Webhook Trigger\n\nYou can use a Webhook node instead of the n8n Form node. The form node often times out, causing data loss  making it unreliable for production use. However, it’s still useful for q"
      }
    },
    {
      "id": "153062a0-2543-453a-a10c-e8aee56ae92c",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -480
      ],
      "parameters": {
        "width": 288,
        "height": 352,
        "content": "## Set Variables\nYou’ll take all the required information from the Webhook or the previous node and assign each item a clear variable name. This allows you to easily reference those values later in th"
      }
    },
    {
      "id": "183dbebd-2e55-43ee-8b65-4229e05af69c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        -640
      ],
      "parameters": {
        "width": 464,
        "height": 512,
        "content": "## Proposal Detail Generator\n\nThis is one of the most critical nodes in the workflow.\n\nHere, the AI takes your raw notes and expands them into a comprehensive, client-ready proposal designed for a pro"
      }
    },
    {
      "id": "b8648a23-d74b-4932-8d8a-9f16afd782f8",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        -592
      ],
      "parameters": {
        "width": 288,
        "height": 464,
        "content": "## Set date code\nUse a Set node to format the date in a clean, professional style  since n8n’s default $now output looks unpolished for proposals.\n\nFor example, instead of the raw timestamp, format it"
      }
    },
    {
      "id": "4824a39b-f7c6-454e-bfb6-9276bd4d0bbd",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1728,
        -784
      ],
      "parameters": {
        "width": 480,
        "height": 656,
        "content": "## Replace Text in a Presentation\n\nIn this step, you’ll use simple placeholder variables inside your presentation to dynamically insert the AI-generated icebreakers.\n\nWithin your Google Slides (or whi"
      }
    },
    {
      "id": "bdaec71d-4119-4f91-874d-e012b7b5c72c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        -816
      ],
      "parameters": {
        "width": 496,
        "height": 688,
        "content": "## Copy from a template\nPresentation Setup\n\nBefore running this part of the workflow, you’ll need to have a presentation file prepared as a reference. This file serves as the destination where your ge"
      }
    },
    {
      "id": "fe66999c-e932-42de-8949-6b52d20b2943",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2256,
        -512
      ],
      "parameters": {
        "width": 368,
        "height": 384,
        "content": "## Draft the Email\n\nThis node creates a Google Draft email containing the link to the proposal. It allows you to review and make final edits before sending it to the client.\n\nAlways take a moment to d"
      }
    },
    {
      "id": "efc5a4c4-2045-43a5-89bc-2a1c162440f3",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2720,
        -400
      ],
      "parameters": {
        "width": 368,
        "height": null,
        "content": "ChatGPT said:\n\nAs always, I’ve included a short how-to guide in case any of the steps need extra clarification.\n\nThank you for reading  and remember, stay automated! 🚀"
      }
    },
    {
      "id": "22aefcec-b945-48b8-a2d1-bfbb4f184d16",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -304,
        -96
      ]
    },
    {
      "id": "d5ca6d26-6616-41ce-86b5-0d1221e88752",
      "name": "Webhook1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -320,
        -256
      ]
    }
  ],
  "connections": {
    "Webhook1": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Presentation Generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Replace text": {
      "main": [
        [
          {
            "node": "Draft Email (Text)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Copy Template": {
      "main": [
        [
          {
            "node": "Replace text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Date Format": {
      "main": [
        [
          {
            "node": "Copy Template",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Presentation Generator": {
      "main": [
        [
          {
            "node": "Set Date Format",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}