- Add startup wizard module for first-run configuration - Add white-label branding system with .product file support - Add bot manager for lifecycle, MinIO buckets, and templates - Add version tracking registry for component updates - Create comparison doc: BASIC vs n8n/Zapier/Make/Copilot - Add WhatsApp-style sample dialogs to template documentation - Add data traceability SVG diagram ```
96 lines
2.7 KiB
QBasic
96 lines
2.7 KiB
QBasic
' General Bots - Welcome Campaign Template
|
|
' Automated drip sequence for new leads/subscribers
|
|
|
|
PARAM lead_email AS string LIKE "user@example.com"
|
|
PARAM lead_name AS string LIKE "John Doe"
|
|
PARAM lead_source AS string LIKE "website"
|
|
|
|
DESCRIPTION "Welcome campaign drip sequence for new leads"
|
|
|
|
' Validate input
|
|
IF ISEMPTY(lead_email) THEN
|
|
THROW "Email is required for welcome campaign"
|
|
END IF
|
|
|
|
IF ISEMPTY(lead_name) THEN
|
|
lead_name = "Friend"
|
|
END IF
|
|
|
|
TALK "Starting welcome campaign for: " + lead_email
|
|
|
|
' Step 1: Immediate Welcome Email
|
|
WITH variables
|
|
.name = lead_name
|
|
.source = lead_source
|
|
.date = TODAY()
|
|
END WITH
|
|
|
|
result = SEND TEMPLATE "welcome-email-1", "email", lead_email, variables
|
|
|
|
IF result[0].success THEN
|
|
TALK "Welcome email #1 sent successfully"
|
|
SAVE "campaign_logs", NOW(), lead_email, "welcome-1", "sent", ""
|
|
ELSE
|
|
TALK "Failed to send welcome email #1"
|
|
SAVE "campaign_logs", NOW(), lead_email, "welcome-1", "failed", result[0].error
|
|
END IF
|
|
|
|
' Step 2: Schedule Follow-up Emails
|
|
SET SCHEDULE "0 9 * * *" DATEADD(TODAY(), 2, "day"), "send-welcome-2.bas"
|
|
SET SCHEDULE "0 9 * * *" DATEADD(TODAY(), 5, "day"), "send-welcome-3.bas"
|
|
SET SCHEDULE "0 9 * * *" DATEADD(TODAY(), 8, "day"), "send-welcome-4.bas"
|
|
SET SCHEDULE "0 9 * * *" DATEADD(TODAY(), 14, "day"), "send-welcome-5.bas"
|
|
|
|
' Step 3: Add to CRM and Score Lead
|
|
SAVE "leads", lead_email, lead_name, lead_source, "Welcome Series", "nurturing", NOW()
|
|
|
|
' Calculate initial lead score
|
|
WITH score_data
|
|
.email = lead_email
|
|
.name = lead_name
|
|
.source = lead_source
|
|
.form_submissions = 1
|
|
END WITH
|
|
|
|
lead_score = SCORE LEAD score_data
|
|
|
|
TALK "Initial lead score: " + lead_score.score + " (Grade: " + lead_score.grade + ")"
|
|
|
|
' Step 4: Track Campaign Enrollment
|
|
SAVE "campaign_enrollments", "Welcome Series", lead_email, lead_name, NOW(), "active", 1, 5
|
|
|
|
' Step 5: Send to WhatsApp if phone provided
|
|
lead_phone = GET BOT MEMORY "lead_phone_" + lead_email
|
|
|
|
IF NOT ISEMPTY(lead_phone) THEN
|
|
WITH wa_vars
|
|
.name = lead_name
|
|
END WITH
|
|
|
|
wa_result = SEND TEMPLATE "welcome-whatsapp", "whatsapp", lead_phone, wa_vars
|
|
|
|
IF wa_result[0].success THEN
|
|
TALK "WhatsApp welcome sent"
|
|
END IF
|
|
END IF
|
|
|
|
' Output Summary
|
|
TALK ""
|
|
TALK "Welcome Campaign Started"
|
|
TALK "Lead: " + lead_name + " <" + lead_email + ">"
|
|
TALK "Score: " + lead_score.score + " (" + lead_score.grade + ")"
|
|
TALK "Status: " + lead_score.status
|
|
TALK "Emails Scheduled: 5"
|
|
TALK "Campaign Duration: 14 days"
|
|
|
|
WITH campaign_status
|
|
.campaign = "Welcome Series"
|
|
.lead = lead_email
|
|
.initial_score = lead_score.score
|
|
.grade = lead_score.grade
|
|
.emails_scheduled = 5
|
|
.next_email_date = DATEADD(TODAY(), 2, "day")
|
|
.status = "active"
|
|
END WITH
|
|
|
|
RETURN campaign_status
|