{"name": "Ep12 - Proposal Sender (sell to local businesses)", "nodes": [
{"parameters": {"formTitle": "New Prospect", "formDescription": "Fill this in during the first call. The proposal prices itself and goes out before you hang up.", "formFields": {"values": [{"fieldLabel": "Business name", "requiredField": true}, {"fieldLabel": "Owner first name", "requiredField": true}, {"fieldLabel": "Owner email", "fieldType": "email", "requiredField": true}, {"fieldLabel": "Task they do by hand every day", "requiredField": true}, {"fieldLabel": "Minutes a day it takes", "fieldType": "number", "requiredField": true}, {"fieldLabel": "What an hour of their time costs ($)", "fieldType": "number", "requiredField": true}]}, "options": {}}, "id": "c1", "name": "New Prospect", "type": "n8n-nodes-base.formTrigger", "typeVersion": 2.2, "position": [0, 0], "webhookId": "ep12-new-prospect"},
{"parameters": {"assignments": {"assignments": [{"id": "p1", "name": "business", "value": "={{ $json['Business name'] }}", "type": "string"}, {"id": "p2", "name": "owner", "value": "={{ $json['Owner first name'] }}", "type": "string"}, {"id": "p3", "name": "email", "value": "={{ $json['Owner email'] }}", "type": "string"}, {"id": "p4", "name": "task", "value": "={{ $json['Task they do by hand every day'] }}", "type": "string"}, {"id": "p5", "name": "hours_month", "value": "={{ Math.round(Number($json['Minutes a day it takes']) * 21 / 60) }}", "type": "number"}, {"id": "p6", "name": "cost_month", "value": "={{ Math.round(Number($json['Minutes a day it takes']) * 21 / 60 * Number($json['What an hour of their time costs ($)'])) }}", "type": "number"}, {"id": "p7", "name": "setup_fee", "value": "={{ Math.max(500, Math.round(Number($json['Minutes a day it takes']) * 21 / 60 * Number($json['What an hour of their time costs ($)']) / 50) * 50) }}", "type": "number"}, {"id": "p8", "name": "retainer", "value": 75, "type": "number"}, {"id": "p9", "name": "sent", "value": "={{ $now.toFormat('yyyy-MM-dd HH:mm') }}", "type": "string"}]}, "options": {}}, "id": "c2", "name": "Price It", "type": "n8n-nodes-base.set", "typeVersion": 3.4, "position": [260, 0]},
{"parameters": {"sendTo": "={{ $json.email }}", "subject": "={{ $json.business }}: getting {{ $json.hours_month }} hours a month back", "emailType": "text", "message": "=Hi {{ $json.owner }},\n\nGood talking just now. Here is what we covered, in writing.\n\nThe job: {{ $json.task }}\nRight now that is about {{ $json.hours_month }} hours a month of your time, roughly ${{ $json.cost_month }} a month at what an hour of your time costs.\n\nWhat I will build: one automation that does it for you, running inside a week, shown working on your real customers before you pay the second half.\n\nSetup: ${{ $json.setup_fee }}, half now, half when it runs.\nAfter month one: ${{ $json.retainer }} a month to host it, watch it, and fix it when something changes.\n\nIf that works, reply yes and I will send the deposit link. If not, reply with what would.\n\nThanks,\nOwnerAutomate Demo", "options": {"appendAttribution": false, "senderName": "OwnerAutomate Demo"}}, "id": "c3", "name": "Send Proposal", "type": "n8n-nodes-base.gmail", "typeVersion": 2.1, "position": [520, 0], "credentials": {"gmailOAuth2": {"id": "avT0HSTU0k73ksRU", "name": "Gmail (OwnerAutomate)"}}},
{"parameters": {"operation": "completion", "completionTitle": "=Proposal sent to {{ $('Price It').item.json.owner }} at {{ $('Price It').item.json.business }}", "completionMessage": "=Setup ${{ $('Price It').item.json.setup_fee }}, then ${{ $('Price It').item.json.retainer }} a month. Follow up in 2 days if no reply.", "options": {}}, "id": "c4", "name": "Sent", "type": "n8n-nodes-base.form", "typeVersion": 1, "position": [780, 0]}
], "connections": {"New Prospect": {"main": [[{"node": "Price It", "type": "main", "index": 0}]]}, "Price It": {"main": [[{"node": "Send Proposal", "type": "main", "index": 0}]]}, "Send Proposal": {"main": [[{"node": "Sent", "type": "main", "index": 0}]]}}, "settings": {"executionOrder": "v1"}}
