Accounts, contacts and pipeline, in one system.
Sales pipeline with email & campaign management
Explore the specification
| Program Number | Name | Type | Goal | Owner |
|---|---|---|---|---|
| PRG-33739 | Program 716 | Drip | GLS-9326 | SN |
| PRG-92527 | Program 528 | Trigger | GLS-3736 | PE |
| PRG-50780 | Program 887 | Webinar | GLS-5190 | YN |
| PRG-98402 | Program 466 | Event | GLS-6622 | ZU |
| PRG-82586 | Program 895 | ReEngagement | GLS-9888 | RW |
| PRG-51805 | Program 286 | Drip | GLS-4200 | UU |
- SR-7723 · Event 1LDS-154803 SepSE
- SR-5296 · Event 2LDS-288125 AugSE
- SR-4834 · Event 3LDS-160019 AugSE
- SR-2775 · Event 4LDS-548129 AugSE
- SR-6477 · Event 5LDS-200208 SepSE
| Member Number | Program | Lead | Current Step | Enrolled At |
|---|---|---|---|---|
| MMB-34926 | PRG-10756 | LDS-6430 | PS-5686 | 23 Sep |
| MMB-17968 | PRG-45039 | LDS-6724 | PS-7348 | 29 Sep |
| MMB-37832 | PRG-84705 | LDS-3494 | PS-2853 | 11 Sep |
| MMB-62609 | PRG-63291 | LDS-5671 | PS-6373 | 18 Sep |
| MMB-72761 | PRG-80052 | LDS-4459 | PS-4331 | 23 Sep |
| MMB-18556 | PRG-18288 | LDS-1532 | PS-1495 | 13 Sep |
| Member Number | Program | Lead | Current Step | Last Step At |
|---|---|---|---|---|
| MMB-44311 | PRG-27652 | LDS-6141 | PS-5740 | 12 Sep |
| MMB-16211 | PRG-86190 | LDS-3449 | PS-8830 | 27 Sep |
| MMB-80890 | PRG-16569 | LDS-8719 | PS-6003 | 27 Sep |
| MMB-62575 | PRG-44082 | LDS-4112 | PS-4885 | 10 Sep |
| MMB-46323 | PRG-95847 | LDS-1638 | PS-7484 | 26 Sep |
| MMB-25497 | PRG-99538 | LDS-7709 | PS-5134 | 08 Sep |
| Lead | Program | Goal | Exited At | Lead.Score |
|---|---|---|---|---|
| LDS-3922 | PRG-44429 | GLS-6824 | 13 Sep | LD.-431 |
| LDS-1536 | PRG-13960 | GLS-5890 | 13 Sep | LD.-668 |
| LDS-9597 | PRG-20298 | GLS-8616 | 14 Sep | LD.-753 |
| LDS-9160 | PRG-52929 | GLS-4025 | 14 Sep | LD.-119 |
| LDS-4982 | PRG-71149 | GLS-4465 | 10 Sep | LD.-600 |
| LDS-7674 | PRG-13765 | GLS-6613 | 11 Sep | LD.-320 |
| Program Number | Name | Type | Goal | Owner |
|---|---|---|---|---|
| PRG-46463 | Program 455 | Drip | GLS-8915 | EJ |
| PRG-52544 | Program 393 | Trigger | GLS-1309 | RV |
| PRG-68478 | Program 144 | Webinar | GLS-4432 | XC |
| PRG-70133 | Program 750 | Event | GLS-6311 | EW |
| PRG-74290 | Program 137 | ReEngagement | GLS-4849 | SH |
| PRG-43228 | Program 718 | Drip | GLS-1351 | RR |
| Lead | Type | Source | Occurred At | Email Template |
|---|---|---|---|---|
| LDS-7733 | Open | 11 Sep | ET-9207 | |
| LDS-5139 | Click | Web | 14 Sep | ET-4297 |
| LDS-1047 | Reply | CMS | 13 Sep | ET-3968 |
| LDS-6403 | FormFill | Webinar | 11 Sep | ET-7340 |
| LDS-9724 | PageVisit | Form | 13 Sep | ET-7379 |
| LDS-5103 | ContentDownload | ChatWidget | 16 Sep | ET-2320 |
| Lead | Reason | Source | Occurred At | |
|---|---|---|---|---|
| LDS-3533 | [email protected] | UserOptOut | EmailLink | 21 Aug |
| LDS-7690 | [email protected] | SpamComplaint | PreferenceCenter | 02 Sep |
| LDS-5456 | [email protected] | HardBounce | Webhook | 30 Aug |
| LDS-7182 | [email protected] | AdminSuppress | Admin | 22 Aug |
| LDS-5169 | [email protected] | ListWashing | EmailReply | 28 Aug |
| LDS-6916 | [email protected] | ManualRequest | EmailLink | 07 Sep |
| Template Code | Name | Subject | From Name | Author |
|---|---|---|---|---|
| TC-318 | Template 853 | InReview et-924 | From 537 | RA |
| TC-710 | Template 171 | InReview et-525 | From 321 | EV |
| TC-416 | Template 880 | InReview et-733 | From 591 | YB |
| TC-798 | Template 893 | InReview et-594 | From 165 | FN |
| TC-558 | Template 197 | InReview et-943 | From 913 | PM |
| TC-658 | Template 622 | InReview et-161 | From 343 | SM |
| Lead | Lead.Source | Lead.Score | last Engagement.Type | last Engagement.Occurred At |
|---|---|---|---|---|
| LDD-490 | LD.-841 | LD.-744 | Open | 22 Sep |
| LDD-578 | LD.-793 | LD.-816 | Open | 15 Sep |
| LDD-856 | LD.-434 | LD.-442 | Open | 28 Sep |
| LDD-160 | LD.-734 | LD.-702 | Open | 17 Sep |
| LDD-390 | LD.-517 | LD.-133 | Open | 12 Sep |
| LDD-903 | LD.-968 | LD.-632 | Open | 11 Sep |
| List Code | Name | Type | Owner | Member Count |
|---|---|---|---|---|
| LC-243 | List 350 | Static | ZK | 39 |
| LC-539 | List 276 | Dynamic | CY | 26 |
| LC-913 | List 163 | Static | FS | 8 |
| LC-178 | List 838 | Dynamic | JL | 26 |
| LC-648 | List 286 | Static | YB | 1 |
| LC-579 | List 676 | Dynamic | KC | 12 |
Illustrative records generated from the specification. Explore the views to inspect the planned operating model.
Built for your team.
Sales leaders who need a pipeline the whole team keeps honest.
- Defined tables
- 16
- Operational views
- 12
- Defined roles
- 5
- Reports
- 7
Defined in the planned system specification.
What’s inside.
Sales pipeline with email & campaign management
Accounts
Companies, sites and ownership
Contacts
People, roles and consent
Pipeline
Stages, probability and next steps
Quotes
Priced proposals with approval
Activities
Calls, meetings, email and tasks
Forecast
Commit, best case and quota
- 01Lead
- 02Qualify
- 03Proposal
- 04Negotiate
- 05Won
Built for your team
Marketing Manager
Owns the Programs catalog and the ScoringModel. Approves new Programs and Email Templates before they go Active; signs off on ScoringModel changes; reviews program performance.
Marketing Operations
Operational designer / builder. Builds Programs, drafts and tests Email Templates, manages Lists and ListMemberships, troubleshoots member exceptions, runs program QA before sending to Marketing Manager for approval.
Sales Manager
Read-only on the marketing surface; sees Members generated against the team's Leads. Uses the MQL Handoff view to coach reps on incoming MQLs.
Sales Rep
Read-only on Members and ScoreEvents for own Leads. Sees the "why is this Lead an MQL" trail when a Lead lands in the rep's queue. Note: recipients of marketing emails (the Lead rows being enrolled) are not Users in this app — their only interaction surface is the unsubscribe link rendered into every Email step, which posts back via the email-send service webhook into the unsubscribe-suppression workflow.
Reports and dashboards
Explore what each report measures and the records behind it.
Program Performance
Per Program: enrolled, active, completed, exited (by ExitOutcome — Achieved / Suppressed / Disqualified / Manual / Drift), goal-achievement rate, median-days-to-goal. Drillable from Program → Step → individual Member. The Marketing Manager's daily landing report.
Member Funnel
Step-by-step conversion within a Program: enrolled → completed step 1 → step 2 → ... → exited (by outcome). Surfaces the step where members drop out so Marketing Ops can fix the email or shorten the wait.
Email Performance
Per EmailTemplate: sent, delivered (from email-send service feed), opens, unique opens, clicks, unique clicks, replies, unsubscribes, spam complaints, bounces. Open rate, click-through rate, click-to-open rate. Sliceable by Program and by 30-day window.
MQL Volume & Velocity
MQLs generated per week, per Program, per Lead.Source. Average days from Lead-created to MQL. The marketing-to-sales-handoff scoreboard.
Lead Score Distribution
Histogram of current Lead Score across the Lead population, with markers for the MQL threshold and the "approaching" band. Highlights whether the scoring model is calibrated (too few high scores → loosen rules; too many → tighten).
Engagement Heatmap
Engagements per day-of-week × hour-of-day, by EngagementType. Used to time future sends. Sliceable by Program and Lead segment.
Unsubscribe Analysis
Unsubscribes by Reason, Source, Program (where attributable), and 30-day trend. CAN-SPAM compliance scoreboard — flags any Lead whose HonoredAt is more than ten business days after OccurredAt.
One connected workspace
Per EmailTemplate: sent, delivered (from email-send service feed), opens, unique opens, clicks, unique clicks, replies, unsubscribes, spam complaints, bounces. Open rate, click-through rate, click-to-open rate. Sliceable by Program and by 30-day window.
| Template Code | Name | Subject | From Name | Author |
|---|---|---|---|---|
| TC-318 | Template 853 | InReview et-924 | From 537 | RA |
| TC-710 | Template 171 | InReview et-525 | From 321 | EV |
| TC-416 | Template 880 | InReview et-733 | From 591 | YB |
| TC-798 | Template 893 | InReview et-594 | From 165 | FN |
- Draft
- InReview
- Approved
- Archived
- TemplateCode
- TC-318
- Name
- Template 853
- Subject
- InReview et-924
- FromName
- From 537
- Author
- RA
- Version
- 330
owner Marketing Manager
Go from the big picture to the details behind it. Open any record to see its status, owner and history.
Illustrative records. Connections follow the authored specification.
Controls and automation
System checks
program-enrollment-on-trigger — appEventTrigger on Leads.record.created and Leads.record.updated → evaluates Program.ProgramAudiences AND-rows; on match, writes a Members row (Status: Active, CurrentStep: first step, NextRunAt: now).
step-execution-engine — scheduleTrigger every 5 minutes → scans Members where Status = Active AND NextRunAt <= now, advances each member by one step, writes MemberStepHistory.
email-send-step — code.executor invoked from the step engine when CurrentStep.StepType = Email → renders EmailTemplate with merge data and posts to the email-send service.
engagement-webhook-ingest — webhookTrigger that writes Engagements rows from web forms, CMS, webinar platform, and email-send service inbound webhooks (the non-email-platform sources).
branch-evaluation — switch node invoked from the step engine when CurrentStep.StepType = Branch → evaluates BranchCondition (EmailOpened, EmailClicked, EmailNotOpened, ScoreAbove / ScoreBelow, FieldEquals, OnList, NotOnList) against Lead state and recent Engagements, sets CurrentStep to BranchTrueNext or BranchFalseNext.
score-on-engagement — appEventTrigger on Engagements.record.created → walks active ScoringRules, writes ScoreEvents rows for each Rule that matches, updates Lead.Score.
mql-promotion — appEventTrigger on ScoreEvents.record.created → if RunningScore crosses ScoringModel.MQLThreshold, updates Lead.Status: Working → MQL in crm-leads and notifies Lead.Owner.
unsubscribe-suppression — webhookTrigger from the email-send service on unsubscribe → writes Unsubscribes row, exits Lead from every Active Program (Members.Status: Active → Exited, ExitOutcome: Suppressed), stamps HonoredAt.
program-completion-cleanup — appEventTrigger on Members.record.updated → when a Member finishes the last ProgramSteps row with no Goal achieved and no other exit rule fired, flips Members.Status: Active → Completed.
goal-achieved-exit — appEventTrigger on Members.record.updated (from GoalCheck step) and on Engagements.record.created (matching Goal.EngagementType) → flips Members.Status: Active → Exited, sets ExitOutcome: Achieved, stamps ExitedAt, increments Program.GoalAchievedCount rollup. Integrations: inbound webhooks from web forms, CMS, the email-send service (open / click / bounce / spam-complaint / unsubscribe), the webinar platform, and the CRM Lead profile feed. Outbound to the email-send service (rendered email payloads), to crm-leads (Lead.Score and Lead.Status writes on MQL promotion), and to the data warehouse (engagement archival).
Make it work your way.
Use Proto to configure this system for your business. Review fields, rules and approvals before releasing changes.
Previews contain illustrative data from the system specification.