Setup n8n
Area: IT Workflow: workflows/it/setup-n8n.json
Purpose
Sección titulada «Purpose»Orchestrates the full n8n onboarding session for a new client — from initial request intake through meeting scheduling to post-meeting setup confirmation. The workflow is the operational backbone for every new Wulpers client that needs their n8n instance configured.
Pipeline
Sección titulada «Pipeline»Form Trigger: Receive Setup Request → Code: Normalize Setup Request → Google Sheets: Log Setup Request (setup_requests tab, status: pending) → Gmail: Schedule Setup Meeting (sendAndWait — client confirms/declines) → IF: Meeting Confirmed? TRUE → Gmail: Send Pre-Meeting Checklist → Wait: Hold Until Meeting Date (resumes on POST to webhook URL) → Gmail: Request Setup Confirmation (sendAndWait — client approves/declines) → IF: Setup Approved? TRUE → Google Sheets: Mark Setup Complete (status: completed) → Gmail: Notify Setup Complete FALSE → Gmail: Schedule Follow-Up Session → No-op: Pending Follow-Up FALSE → No-op: Meeting Not Confirmed| Stage | Name | Status | Notes |
|---|---|---|---|
| 1 | Intake | Implemented | Form intake, normalization, Sheets log. |
| 2 | Meeting Scheduling | Implemented | Client confirms via sendAndWait; pre-meeting checklist sent; Wait holds. |
| 3 | Post-Meeting | Implemented | Client confirms setup complete or requests a follow-up. |
Trigger — form fields
Sección titulada «Trigger — form fields»| Field | Type | Required | Notes |
|---|---|---|---|
| Client Name | text | yes | |
| Client Email | yes | ||
| Company | text | yes | |
| n8n Plan | dropdown | yes | Cloud Starter / Cloud Pro / Self-Hosted / Trial. |
| Current Tools | textarea | yes | CRM, email platform, databases, spreadsheets, etc. |
| Automation Goals | textarea | yes | What the client wants to automate. |
| Availability | textarea | yes | Preferred days, times, and timezone. |
| Notes | textarea | no | Anything else worth mentioning. |
Normalized request shape
Sección titulada «Normalized request shape»{ "setup_id": "<ISO-8601 timestamp>", "client_name": "string", "client_email": "string", "company": "string", "n8n_plan": "Cloud Starter | Cloud Pro | Self-Hosted | Trial", "current_tools": "string", "automation_goals": "string", "availability": "string", "notes": "string", "status": "pending", "submitted_at": "<ISO-8601 timestamp>"}Persistence — setup_requests tab
Sección titulada «Persistence — setup_requests tab»Create this tab in the target workbook before activating. Replace REPLACE_WITH_WORKBOOK_ID in both Sheets nodes with the actual spreadsheet ID. One row per submitted request; Stage 3 updates the same row keyed by setup_id.
| Column | Type | Notes |
|---|---|---|
setup_id |
string | PK. ISO-8601 timestamp. |
client_name |
string | |
client_email |
string | |
company |
string | |
n8n_plan |
enum | Cloud Starter / Cloud Pro / Self-Hosted / Trial. |
current_tools |
string | |
automation_goals |
string | |
availability |
string | |
notes |
string | |
status |
enum | pending → completed. follow_up can be added when Stage 3 is extended. |
submitted_at |
string | ISO-8601. |
last_updated_at |
string | ISO-8601. Updated by Stage 3 on completion. |
Email flows
Sección titulada «Email flows»Gmail: Schedule Setup Meeting (sendAndWait)
Sección titulada «Gmail: Schedule Setup Meeting (sendAndWait)»Sent to the client. Displays their submitted availability and asks them to click Approve (proceed) or Decline (cancel). The IF node reads $json.data.approved.
Gmail: Send Pre-Meeting Checklist
Sección titulada «Gmail: Send Pre-Meeting Checklist»Sent after confirmation. Instructs the client to have ready:
- Access to their n8n instance (admin credentials or instance URL).
- API keys / OAuth tokens for the tools they listed in
current_tools. - Any existing workflows to migrate or reference.
- A short list of the first automations they want (from
automation_goals).
Wait: Hold Until Meeting Date
Sección titulada «Wait: Hold Until Meeting Date»Pauses execution indefinitely. The operator manually resumes it by sending a POST to the node’s webhook URL once the meeting is complete. Find the URL inside the active execution in n8n.
Gmail: Request Setup Confirmation (sendAndWait)
Sección titulada «Gmail: Request Setup Confirmation (sendAndWait)»Sent after the meeting. Client clicks Approve (setup done) or Decline (needs follow-up). The IF node reads $json.data.approved.
Gmail: Notify Setup Complete
Sección titulada «Gmail: Notify Setup Complete»Congratulatory email referencing the client’s n8n_plan and inviting them to reach out with questions.
Gmail: Schedule Follow-Up Session
Sección titulada «Gmail: Schedule Follow-Up Session»Sent when the client declines the setup confirmation. Notifies them that the Wulpers team will reach out to reschedule. Execution ends at No-op: Pending Follow-Up — re-schedule manually.
Credentials
Sección titulada «Credentials»| Credential type | Used by |
|---|---|
gmailOAuth2 |
Gmail: Schedule Setup Meeting, Gmail: Send Pre-Meeting Checklist, Gmail: Request Setup Confirmation, Gmail: Notify Setup Complete, Gmail: Schedule Follow-Up Session. |
googleSheetsOAuth2Api |
Google Sheets: Log Setup Request, Google Sheets: Mark Setup Complete. |
commercial.
active: false.- Triggered by the public setup request form.
Wait: Hold Until Meeting Daterequires manual operator resume via webhook POST after the meeting.
Open questions
Sección titulada «Open questions»- Follow-up loop: When the client declines the post-meeting confirmation, the workflow ends at
No-op: Pending Follow-Upwith no automatic re-scheduling. Consider adding a secondsendAndWaitthat proposes a follow-up date, or link this to a calendar booking tool (Calendly, Cal.com). - Google Calendar invite: Currently the meeting date is communicated manually after the confirmation email. A
Google Calendar: Create Meeting Eventnode could auto-create the calendar invite using theavailabilitytext as a cue once a specific date is agreed upon. - Status transitions:
statuscurrently only movespending→completed. Addfollow_upandcancelledstates as the follow-up flow is built out. - Sender identity: All Gmail nodes use the
Gmail Api Piplfycredential. Confirm whether setup emails should come from a shared inbox (e.g.setup@wulpers.com) rather than a personal account.
Changelog
Sección titulada «Changelog»Initial build
Sección titulada «Initial build»- Added intake form with 8 fields (Client Name, Email, Company, n8n Plan, Current Tools, Automation Goals, Availability, Notes).
- Normalization code maps form output to
setup_requestsschema;setup_idis the ISO-8601 submit timestamp. - Sheets append on intake; Sheets update on completion (keyed by
setup_id). - Stage 2:
sendAndWaitconfirmation + pre-meeting checklist + webhook-basedWait. - Stage 3:
sendAndWaitsetup confirmation with approve / follow-up branch. - Tag:
commercial.