{
  "name": "Automate client onboarding with Asana, Google Docs, Gmail, Slack and Sheets",
  "nodes": [
    {
      "id": "2bd3710b-9667-4be7-a898-5901efda869e",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        512
      ],
      "parameters": {
        "width": 508,
        "height": 492,
        "content": "## 🚀 Client Onboarding Automation\n\n### How it works\nThis workflow automates the complete client onboarding process for service businesses. When a new client submits their intake form, the workflow cre"
      }
    },
    {
      "id": "e119f12d-174d-44f4-9e6c-877ed53a2a83",
      "name": "Section: Intake",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        1088
      ],
      "parameters": {
        "width": 440,
        "height": 336,
        "content": "## 📥 Webhook & Data Processing\n\nReceives client intake form data via webhook POST request and parses 70+ fields including contact info, business details, technical requirements, and service preference"
      }
    },
    {
      "id": "a5d406ba-f2a6-445e-862e-342d7b95458e",
      "name": "Section: Project",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        1088
      ],
      "parameters": {
        "width": 636,
        "height": 340,
        "content": "## 📋 Asana Project Setup\n\nCreates a new Asana project for the client, copies sections from a template project, retrieves all tasks from each section, and assigns them to the new project to ensure cons"
      }
    },
    {
      "id": "370944da-e357-470a-8541-ce6ba2181ba5",
      "name": "Section: Contract",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        896
      ],
      "parameters": {
        "width": 1056,
        "height": 628,
        "content": "## 📄 Contract Generation\n\nRetrieves a Google Docs template, replaces placeholders with client-specific information (name, fees, dates), downloads the personalized contract as PDF, then resets the temp"
      }
    },
    {
      "id": "9f963274-d49e-4dae-89ae-56db290046c1",
      "name": "Section: Email",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2384,
        848
      ],
      "parameters": {
        "width": 420,
        "height": 380,
        "content": "## 📧 Client Communication\n\nSends a personalized welcome email to the client with their contract attached, includes links to schedule an onboarding call and complete additional forms."
      }
    },
    {
      "id": "2b5c2146-7f56-4349-8d90-4eb65b1cbc58",
      "name": "Section: Logging",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2816,
        864
      ],
      "parameters": {
        "width": 448,
        "height": 336,
        "content": "## 💾 Data Logging & Team Setup\n\nLogs all client information to Google Sheets for centralized tracking and creates a dedicated Slack channel for team communication about the new client."
      }
    },
    {
      "id": "02ea3049-edf4-4377-850c-deaffc5f9433",
      "name": "Credentials Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3312,
        944
      ],
      "parameters": {
        "width": 300,
        "height": 244,
        "content": "## 🔐 Credentials & Security\n\nRequired: Asana OAuth2, Google Docs/Drive/Sheets OAuth2, Gmail OAuth2, Slack API token. Replace all template IDs, workspace numbers, and email addresses with your own befo"
      }
    },
    {
      "id": "15c76280-fd73-4e25-9fe6-5eef70538fab",
      "name": "Receive Client Form",
      "type": "n8n-nodes-base.webhook",
      "position": [
        176,
        1232
      ]
    },
    {
      "id": "1e255238-df5e-4f8e-b7a3-0578d0c64c30",
      "name": "Create Slack Channel",
      "type": "n8n-nodes-base.slack",
      "position": [
        3136,
        1040
      ]
    },
    {
      "id": "4972fc0b-f530-4ca5-93a5-489f76085ac5",
      "name": "Create Asana Project",
      "type": "n8n-nodes-base.asana",
      "position": [
        624,
        1232
      ]
    },
    {
      "id": "aa99cb1b-148b-40de-bac5-7df9ada18e29",
      "name": "Get Template Sections",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        848,
        1232
      ]
    },
    {
      "id": "614a50c2-e0b9-43b3-b3a9-aec141a9565e",
      "name": "Split Sections",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1072,
        1232
      ]
    },
    {
      "id": "30187d10-9b80-48d6-9ac1-ddd05fd31801",
      "name": "Create Section in New Project",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1520,
        1232
      ]
    },
    {
      "id": "d1343beb-7af3-43aa-93c2-7c2564e35306",
      "name": "Loop Through Sections",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1296,
        1232
      ]
    },
    {
      "id": "57a79416-9e9f-4672-ba7c-997e9f948298",
      "name": "Get Tasks from Template Section",
      "type": "n8n-nodes-base.asana",
      "position": [
        1744,
        1232
      ]
    },
    {
      "id": "98d2f445-8479-4661-bef8-bebe2f99dbb2",
      "name": "Add Task to New Project",
      "type": "n8n-nodes-base.asana",
      "position": [
        1968,
        1312
      ]
    },
    {
      "id": "7cfb5d4e-b5fd-4ec3-bd05-55aef83a3289",
      "name": "Send Welcome Email with Contract",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2416,
        1040
      ]
    },
    {
      "id": "73044e58-1248-46cc-9d38-71c535d40824",
      "name": "Wait for All Tasks",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1520,
        1040
      ]
    },
    {
      "id": "fec23f43-99f6-46de-a065-466d6ddcb799",
      "name": "Parse Client Data",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        1232
      ]
    },
    {
      "id": "f8868020-0b8d-4ba4-80b4-96222f1292f5",
      "name": "Get Contract Template",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1744,
        1040
      ]
    },
    {
      "id": "4aff58b9-686f-47b3-9b64-e41abc8622c5",
      "name": "Populate Contract with Client Data",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1968,
        1040
      ]
    },
    {
      "id": "0c7925ce-d366-46d1-becb-62ffa4af8365",
      "name": "Download Contract as PDF",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2192,
        1040
      ]
    },
    {
      "id": "29f86e5d-f1e9-4cd8-ae26-96b08af80d7d",
      "name": "Reset Template to Blanks",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        2640,
        1040
      ]
    },
    {
      "id": "526977b1-48f6-4672-86c5-a2f5f6ac955c",
      "name": "Log to Tracking Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2864,
        1040
      ]
    }
  ],
  "connections": {
    "Split Sections": {
      "main": [
        [
          {
            "node": "Loop Through Sections",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Client Data": {
      "main": [
        [
          {
            "node": "Create Asana Project",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for All Tasks": {
      "main": [
        [
          {
            "node": "Get Contract Template",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Client Form": {
      "main": [
        [
          {
            "node": "Parse Client Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Asana Project": {
      "main": [
        [
          {
            "node": "Get Template Sections",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Contract Template": {
      "main": [
        [
          {
            "node": "Populate Contract with Client Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Template Sections": {
      "main": [
        [
          {
            "node": "Split Sections",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log to Tracking Sheet": {
      "main": [
        [
          {
            "node": "Create Slack Channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Through Sections": {
      "main": [
        [
          {
            "node": "Wait for All Tasks",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Section in New Project",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add Task to New Project": {
      "main": [
        [
          {
            "node": "Loop Through Sections",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Contract as PDF": {
      "main": [
        [
          {
            "node": "Send Welcome Email with Contract",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Reset Template to Blanks": {
      "main": [
        [
          {
            "node": "Log to Tracking Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Section in New Project": {
      "main": [
        [
          {
            "node": "Get Tasks from Template Section",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Tasks from Template Section": {
      "main": [
        [
          {
            "node": "Add Task to New Project",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Welcome Email with Contract": {
      "main": [
        [
          {
            "node": "Reset Template to Blanks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Populate Contract with Client Data": {
      "main": [
        [
          {
            "node": "Download Contract as PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}