New Stripe customer → Google Sheet + welcome email
Problem
Paid customers should land in one shared tracker and get a fast welcome email, but Stripe events often sit disconnected from onboarding.
Workflow steps
- 1Receive the Stripe customer.created or checkout.session.completed event in an n8n Webhook.
- 2Normalize customer email, name, company, Stripe customer ID, plan, and event time.
- 3Stop the happy path if Stripe did not send an email address.
- 4Append the customer record to a Google Sheet called Stripe Customers.
- 5Send a Gmail welcome email and post a Slack note for the team.
Setup notes
- • Paste the production webhook URL into Stripe after importing the workflow.
- • Replace REPLACE_WITH_GOOGLE_SHEET_ID with your sheet ID.
- • Connect Google Sheets, Gmail, and Slack credentials in n8n.
Full importable n8n JSON
Copy everything in this block into n8n.
{
"name": "Stripe Customer to Google Sheets and Welcome Email",
"nodes": [
{
"parameters": {
"path": "stripe-customer-created",
"httpMethod": "POST",
"responseMode": "onReceived",
"responseData": "firstEntryJson"
},
"id": "stripe-customer-webhook",
"name": "Stripe Customer Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
0,
0
]
},
{
"parameters": {
"keepOnlySet": true,
"values": {
"string": [
{
"name": "email",
"value": "={{$json.data?.object?.email || $json.email}}"
},
{
"name": "name",
"value": "={{$json.data?.object?.name || $json.name || 'New customer'}}"
},
{
"name": "company",
"value": "={{$json.data?.object?.metadata?.company || ''}}"
},
{
"name": "stripeCustomerId",
"value": "={{$json.data?.object?.customer || $json.data?.object?.id}}"
},
{
"name": "plan",
"value": "={{$json.data?.object?.metadata?.plan || 'unknown'}}"
},
{
"name": "createdAt",
"value": "={{$now.toISO()}}"
}
]
}
},
"id": "normalize-stripe-customer",
"name": "Normalize Stripe Customer",
"type": "n8n-nodes-base.set",
"typeVersion": 3,
"position": [
280,
0
]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json.email}}",
"operation": "isNotEmpty"
}
]
}
},
"id": "validate-customer-email",
"name": "Validate Customer Email",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
560,
0
]
},
{
"parameters": {
"operation": "append",
"documentId": "REPLACE_WITH_GOOGLE_SHEET_ID",
"sheetName": "Stripe Customers",
"columns": {
"mappingMode": "defineBelow",
"value": {
"email": "={{$json.email}}",
"name": "={{$json.name}}",
"company": "={{$json.company}}",
"stripeCustomerId": "={{$json.stripeCustomerId}}",
"plan": "={{$json.plan}}",
"createdAt": "={{$json.createdAt}}"
}
}
},
"id": "append-customer-to-google-sheets",
"name": "Append Customer to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4,
"position": [
840,
-120
]
},
{
"parameters": {
"sendTo": "={{$json.email}}",
"subject": "Welcome to {{$json.plan || 'our product'}}",
"message": "Hi {{$json.name}},\n\nThanks for becoming a customer. We received your payment and will send onboarding details shortly.\n\nBest,\nThe team"
},
"id": "send-welcome-email",
"name": "Send Welcome Email",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2,
"position": [
1120,
-120
]
},
{
"parameters": {
"channel": "#new-customers",
"text": "New Stripe customer: {{$json.email}} on {{$json.plan}}."
},
"id": "notify-new-customer-in-slack",
"name": "Notify New Customer in Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 2,
"position": [
1400,
-120
]
}
],
"connections": {
"Stripe Customer Webhook": {
"main": [
[
{
"node": "Normalize Stripe Customer",
"type": "main",
"index": 0
}
]
]
},
"Normalize Stripe Customer": {
"main": [
[
{
"node": "Validate Customer Email",
"type": "main",
"index": 0
}
]
]
},
"Validate Customer Email": {
"main": [
[
{
"node": "Append Customer to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Append Customer to Google Sheets": {
"main": [
[
{
"node": "Send Welcome Email",
"type": "main",
"index": 0
}
]
]
},
"Send Welcome Email": {
"main": [
[
{
"node": "Notify New Customer in Slack",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "flowforge-template-stripe-customer-v1",
"meta": {
"generatedBy": "FlowForge AI templates",
"sourceGoal": "New Stripe customer to Google Sheets and welcome email"
}
}Want the complete bundle? $9 — Get all 10 JSON templates + the prompt cheat-sheet