Leadflow is a no-code/low-code automation system for handling paid discovery call leads for a marketing agency. It captures a lead from a Tally form, stores the submission in Airtable, qualifies the lead with deterministic rules, enriches the record with an OpenAI summary, sends transactional email through SendGrid, notifies the owner in Slack, and records workflow activity.
The current project is a portfolio MVP for Northstar Growth Studio. It is not a traditional web application. The Make.com scenario is the central workflow engine and contains most of the business logic.
The MVP proves this workflow:
Tally form
-> Make.com scenario
-> Airtable CRM
-> rule-based qualification
-> OpenAI lead summary and score
-> SendGrid confirmation/payment emails
-> Slack owner notification
-> Airtable Activity Log
For qualified leads, the system sends a Stripe test-mode payment link for a $149 Paid Marketing Discovery Call. Payment confirmation and scheduling are handled manually in this MVP.
| Area | Tool | Purpose |
|---|---|---|
| Lead capture | Tally | Public discovery call request form |
| Automation | Make.com | Main scenario orchestration and business logic |
| CRM/database | Airtable | Leads, configuration, and activity logs |
| AI enrichment | OpenAI API | Owner-facing lead summary, score, fit label, and next action |
| SendGrid | Lead confirmation and qualified payment link emails | |
| Owner alerts | Slack | Internal summary notification |
| Payment link | Stripe test mode | Static test payment link for the paid discovery call |
.
├── Northstar Growth Studio - Lead Intake Workflow.blueprint.json
├── README.md
├── docs/
│ ├── mvp/
│ └── full/
├── implementation_plan/
│ └── mvp/
├── project_diary.md
└── accs.md
Important files:
Northstar Growth Studio - Lead Intake Workflow.blueprint.json- Make.com scenario blueprint.docs/mvp/todo.md- MVP requirements and acceptance criteria.docs/mvp/workflow-diagram.md- Mermaid workflow diagram.docs/mvp/ai-qualification-spec.md- OpenAI prompt and JSON output contract.docs/mvp/email-templates.md- SendGrid and Slack message templates.docs/mvp/testing-checklist.md- test cases for qualified, needs-review, and OpenAI failure paths.implementation_plan/mvp/- guided build steps.accs.md- local account notes. Keep this private and do not publish secrets.
The MVP uses three Airtable tables.
Stores the lead submission and workflow results:
- contact and company information;
- marketing budget, goal, services, and timeline;
- deterministic qualification result;
- AI lead score, fit classification, summary, and recommended action;
- payment link URL;
- booking status and owner notes.
Stores automation events such as:
Lead Created;Rule Qualification Completed;AI Completed;Email Sent;Slack Sent;Error.
Stores non-secret workflow settings that Make reads at runtime:
stripe_payment_link_url;discovery_call_price_usd;sendgrid_from_email;slack_channel;openai_model_id;agency_name.
API keys and tokens must not be stored in Airtable or committed to this repository. Use native Make connections for secrets.
A lead is Qualified only when all of these conditions are true:
- budget is
$3,000-$10,000or$10,000+; - start timeline is
ImmediatelyorWithin 30 days; - website URL is present;
- email consent is checked;
- at least one service is selected.
Qualified leads receive the payment link email. All other valid leads are marked as Needs Review, do not receive the payment link email, and still trigger a Slack owner notification.
OpenAI does not decide final routing in the MVP. It enriches the record with a summary, score, fit classification, recommended action, and pain points.
Create or verify access to:
- Make.com;
- Tally;
- Airtable;
- Stripe in test mode;
- SendGrid;
- Slack;
- OpenAI Platform.
Create a base named:
Marketing Agency Discovery Call Automation MVP
Add the three required tables:
Leads;Activity Log;Configuration.
Use docs/mvp/todo.md or implementation_plan/mvp/03-airtable-base-setup-done.md as the field reference.
Create a Tally form for:
Paid Marketing Discovery Call Request
Required fields:
- full name;
- business email;
- company name;
- website URL;
- monthly marketing budget;
- primary marketing goal;
- current biggest marketing challenge;
- services interested in;
- start timeline;
- email consent checkbox.
In Stripe test mode, create a payment link for:
Paid Marketing Discovery Call - $149
Save the test payment URL in Airtable Configuration as stripe_payment_link_url.
Set up a verified sender or test sender. The MVP uses two emails:
- lead confirmation email;
- qualified payment link email.
The copy is defined in docs/mvp/email-templates.md.
Create or use a Slack channel:
#leadflow-mvp
When Make asks for a Slack connection, use the standard Slack user connection. Advanced OAuth settings are not needed unless you intentionally created a custom Slack app.
Create an OpenAI API key and store it only in the Make OpenAI connection. Store the selected model ID in Airtable Configuration as openai_model_id.
The expected JSON output is documented in docs/mvp/ai-qualification-spec.md.
- Open Make.com.
- Create a new scenario or open the scenario import menu.
- Import the blueprint file:
Northstar Growth Studio - Lead Intake Workflow.blueprint.json
- Reconnect each module to your own accounts:
- Tally or webhook trigger;
- Airtable;
- OpenAI;
- SendGrid;
- Slack.
- Check module mappings after reconnecting accounts. Imported blueprints can lose account-specific table IDs, field IDs, or connection references.
- Do not turn the scenario on permanently until the test cases pass.
- In Make, click
Run once. - Submit the Tally form with test lead data.
- Confirm Make receives the submission.
- Confirm Airtable creates a record in
Leads. - Confirm qualification and AI fields are written back to Airtable.
- Confirm the correct SendGrid emails are sent.
- Confirm the owner summary appears in Slack.
- Confirm
Activity Logcontains the expected events.
Use a lead with:
- budget:
$3,000-$10,000or$10,000+; - timeline:
ImmediatelyorWithin 30 days; - email consent checked;
- website present;
- at least one service selected.
Expected result:
Rule Qualification Result = Qualified;Status = Payment Link Sent;- confirmation email sent;
- payment link email sent;
- Slack summary sent;
- Activity Log updated.
Use a lead with a lower budget or slower timeline, for example:
- budget:
Under $1,000or$1,000-$3,000; - or timeline:
1-3 monthsorJust exploring.
Expected result:
Rule Qualification Result = Needs Review;Status = Needs Review;- confirmation email sent;
- payment link email not sent;
- Slack summary sent;
- Activity Log updated.
Temporarily use an invalid model ID or disable the OpenAI module.
Expected result:
- Make should not stop the entire workflow;
- deterministic qualification should still run;
- Airtable should show
AI unavailableor the documented fallback value; - Activity Log should record an AI failure;
- Slack summary should still be sent.
- Use Stripe test mode only for the MVP.
- Do not use real customer data in test submissions.
- Do not commit API keys, webhook secrets, tokens, or private customer information.
- Keep account notes and credentials outside public documentation.
- Capture screenshots only after hiding secrets and private data.
The MVP is complete when:
- a Tally submission creates an Airtable lead;
- the lead is routed as
QualifiedorNeeds Review; - OpenAI summary and score are stored in Airtable;
- a qualified lead receives the Stripe test payment link email;
- a needs-review lead does not receive the payment link email;
- Slack receives the owner summary;
- Activity Log records the key workflow events;
- one qualified and one needs-review test case pass;
- no secrets or real customer data are visible in screenshots or committed files.