Campaign Operations Optimisation: Phase 1 Salesforce Flows PoC for lifecycle management and SLA automation. Phase 2 positions Agentforce agents as intelligent enhancement.
Salesforce-native operations layer using Record-Triggered Flows for campaign lifecycle management, complexity scoring, SLA derivation, and auto-assignment. Phase 1 (Complete): Flows-based automation. Phase 2 (Planned): Agentforce agents for intelligent intake validation, routing, and notifications.
Campaign operations teams manage hundreds of requests per quarter across multiple business units, each carrying different complexity — from reruns with minor changes to net-new multi-channel journeys with audience segmentation and dynamic content. The current process relies on Teams Planner duplication, email threads, and manual estimation. There's no consistent way to measure effort, verify intake quality, or explain SLA breaches with evidence.
This PRD documents a two-phase solution. Phase 1 (completed): Salesforce becomes the single source of truth using Record-Triggered Flows that manage the entire campaign lifecycle — from intake through QA to launch. Flows handle complexity scoring, SLA derivation, auto-assignment, and status management. Phase 2 (planned): Agentforce agents layer intelligent validation, routing recommendations, and proactive notifications on top of the proven Flow foundation.
Clear scope ensures the team builds what matters now and deliberately defers what doesn't. Non-goals aren't failures — they're intentional trade-offs showing what we won't build this release.
Features ranked using MoSCoW. Phase 1 built with 3 core Flows (Briefing/SLA, Pause/Resume, Initial Assignment Routing) that orchestrate the entire lifecycle. "Must" features are mandatory — without them the product doesn't deliver core value. "Should" and "Could" features enhance Phase 1 and Phase 2 will add Agentforce agents. "Won't" features deferred to Phase 3.
| Feature | Description | Priority | Phase |
|---|---|---|---|
| Briefing – Calculate Readiness and SLA (Flow) | Record-triggered, Before Save. BU fills 3-screen intake form; Intake Validator checks required fields (campaign name, type, channels, audience, BU), blocks incomplete submissions with "Not Ready – BU Action Required"; if valid → Status = Ready for Assignment, Complexity engine calculates Low/Medium/High based on channels (new) or change type (rerun), SLA Target derived with business day logic. | Must | 1 |
| SLA Pause/Resume (Flow) | Record-triggered. Pauses SLA clock when Status = "Not Ready – BU Action Required"; tracks paused minutes; resumes and recalculates SLA Target proportionally when work restarts. Ensures fair SLA measurement. | Must | 1 |
| Initial Assignment Routing (Flow) | Record-triggered when Status = "Ready for Assignment". Auto-assigns to builder with lowest complexity-weighted in-flight workload. Routes Content Builder for new campaigns, Journey Builder for reruns. Creates Task and sends custom notification. | Must | 1 |
| Campaign Lifecycle Statuses | 7 statuses: Submitted → Not Ready – BU Action Required → Ready for Assignment → Assigned – In Build → In QA → Ready to Launch → Launched | Must | 1 |
| Complexity Scoring Formula | New campaigns: 1 channel = Low (3d), 2 channels = Medium (5d), 3+ channels = High (7d). Reruns: No changes = Low (2d); Subject/Content/Segment = 1-2 points; Content+Segment/Journey Logic = 3-4 points (Medium/High). | Must | 1 |
| Auto-Created QA Items | When Status = In QA, 10+ standardised Campaign QA Items auto-created: journey validation, data verification, channel testing, consent checks, segment validation, suppression, frequency caps, etc. Each item has Pass/Fail/N/A + evidence field. | Must | 1 |
| Ops Kanban Board | Status-based list view for standup: filters by Status, shows SLA health (On Track/At Risk/Breached), current assignee, complexity level, days remaining | Must | 1 |
| SLA At Risk & Breached View | "Ops – SLA At Risk & Breached" list view with formula field: On Track/At Risk (within 24h)/Breached (past SLA Target). Red highlighting for breached, amber for at-risk. | Must | 1 |
| List Views & Kanban | BU views: "My Campaigns". Builder views: "My Content Builds" (new), "My Journey Builds" (reruns). QA view: "In QA (Awaiting Checklist)". Filters by Status, assignee, complexity. | Must | 1 |
| Campaign Intake Object | Salesforce custom object: Campaign record with fields (Name, Type, Channels, Rerun checkbox, Change Type, BU, Requestor, Status, Complexity, SLA Target, Builder, Launch Date). | Must | 1 |
| Custom Notifications & Alerts | Bell icon + Outlook/Salesforce notifications to builders on assignment, to requestors on status changes (Not Ready, Ready to Launch, Launched) | Should | 1 |
| Reassignment Handler | Triggered by leave/capacity changes: identifies builder's campaigns, reassigns to next-lowest workload builder, sends notifications via Outlook/Salesforce | Should | 1 |
| SLA Result Capture | Auto-sets "SLA Met" or "SLA Miss" on launch based on actual close date vs SLA Target; requires miss reason if Miss | Should | 1 |
| Validation Rules | BU required fields enforcement, Not Ready Reason mandatory, Rerun Change Type enforcement, stage transition guards | Should | 1 |
| Path Component | Visual tracker: 1–Briefing → 2–Build → 3–QA → 4–Activated; shows current stage and progress | Should | 1 |
| Campaign QA Item Object | Child object capturing standardised QA checklist; replaces Excel; designed but not yet fully automated | Could | 2+ |
| Dashboards (3 Audiences) | Ops dashboard, BU dashboard, Exec dashboard; designed for Phase 2+ | Could | 2+ |
| Demand Planning Views | Forecast capacity based on campaign volume trends; Phase 2+ feature | Could | 2+ |
Screen 1: Basics (campaign name, type, channels). Screen 2: Rerun details (if applicable). Screen 3: Readiness (approvals, content status). Record created with Status = Submitted.
Checks: campaign name, type, channel count, audience criteria, BU name all present. If any missing, Status = "Not Ready – BU Action Required", email sent to requestor with specific missing fields.
Complexity engine runs: new campaigns score by channel count (1=Low/3d, 2=Medium/5d, 3=High/7d); reruns score by change type. SLA Target datetime derived with business day logic. SLA Start timestamp set.
Complexity-weighted workload calculation: identifies active campaigns assigned to each builder, weights by complexity, finds minimum. Routes Content Builder for new campaigns, Journey Builder for reruns. Creates Task for builder. Custom notification sent.
Builder sees campaign in their queue, begins content creation. Campaign record shows builder name, assignment date, SLA status (On Track/At Risk/Breached).
Record-triggered Flow creates 10+ Campaign QA Items with standardised checklist: journey validation, data verification, channel testing, consent checks, etc. Each item has Pass/Fail/N/A status with required evidence field.
Reviewer marks each QA Item Pass/Fail/N/A, uploads evidence. Validation rule requires all items completed before Status = Ready to Launch.
Ops lead reviews QA sign-off, confirms activation. Status changes to Launched. SLA result captured: auto-sets "SLA Met" or "SLA Miss" by comparing actual close date to SLA Target. If Miss, capture reason.
Same 3-screen form; checks "Rerun" checkbox and specifies change type (No changes / Subject / Content / Segment / Content + Segment / Journey Logic).
Checks: campaign name, original campaign reference, change type, audience data file link. Validation rules enforce Change Type field if Rerun=true.
If Change Type = "No changes", complexity = Low, SLA = 2 days. If changes (Subject/Content/Segment/Logic), score by change type: Subject=1, Content=2, Segment=2, Content+Segment=3, Journey Logic=4 points.
Auto Assign logic skips content builder stage for reruns. Assigns to Journey Builder with lowest workload. Creates Task. Sends notification.
Builder updates journey with new audience data, tests, QA checklist created and completed, launch confirmed. Faster cycle (typically 2 days for no-change reruns).
Success is measured across input metrics (things we control), health metrics (system stability), and watch metrics (early warnings). North Star: campaign cycle time from brief to go-to-market.
Complexity drives both SLA and workload fairness. The scoring formula is deterministic, transparent, and validated against historical effort data.
Instead of building everything at once, features organised into three phases. Each phase delivers measurable value and provides foundation for the next. Phase 1 standardises process with Flows. Phase 2 adds Agentforce intelligence. Phase 3 scales with prediction.
| ID | Requirement | Priority |
|---|---|---|
| FR-01 | Briefing Flow (Record-Triggered, Before Save): BU fills 3-screen intake form (basics, rerun details, readiness). Intake Validator validates required fields (campaign name, type, channels, audience, BU). Blocks incomplete with Status = "Not Ready – BU Action Required". If valid, moves to "Ready for Assignment". | Must |
| FR-02 | Complexity Scoring: New campaigns scored by channel count (1=Low/3d, 2=Medium/5d, 3+=High/7d). Reruns by change type (None=Low/2d; Subject/Content/Segment=1-2pts/Medium; Content+Segment/Logic=3-4pts/High). Stored in Complexity Level field; drives SLA and workload fairness. | Must |
| FR-03 | SLA Derivation: Derived from Complexity level with business day logic. SLA Target datetime calculated and set. SLA Start timestamp recorded. Rerun (no change) defaults to 2 days. | Must |
| FR-04 | SLA Pause/Resume Flow (Record-Triggered): Pauses SLA clock when Status = "Not Ready – BU Action Required" (records Pause Start timestamp). When resumed, calculates paused minutes and extends SLA Target proportionally. Tracks SLA Pause Minutes and Resume Count. | Must |
| FR-05 | Initial Assignment Routing Flow (Record-Triggered): Triggers on Status = "Ready for Assignment". Auto-assigns to builder with lowest complexity-weighted in-flight workload. Routes Content Builder for new campaigns, Journey Builder for reruns. Creates Task and sends custom notification. | Must |
| FR-06 | Campaign Lifecycle: 7 statuses with validation gates. Submitted → Not Ready – BU Action Required → Ready for Assignment → Assigned – In Build → In QA → Ready to Launch → Launched. Stage transitions enforce validation rules. | Must |
| FR-07 | Auto-Create QA Items: Triggered when Status = In QA. Creates 10+ Campaign QA Items (journey validation, data verification, channel testing, consent, segment validation, suppression, frequency caps). Each item has Pass/Fail/N/A status + evidence field (screenshot, test, approval). | Must |
| FR-08 | Ops Kanban Board: Status-based list view for standup. Filters by Status, shows builder, SLA status (On Track/At Risk/Breached), complexity, days remaining. Supports standup workflows. | Must |
| FR-09 | SLA At Risk & Breached View: "Ops – SLA At Risk & Breached" list view with SLA Status formula (On Track/At Risk within 24h/Breached past target). Red highlighting for breached, amber for at-risk. For proactive SLA management. | Must |
| FR-10 | List Views & Kanban: BU views ("My Campaigns"), Builder views ("My Content Builds" new / "My Journey Builds" reruns), QA view ("In QA – Awaiting Checklist"). Filters by Status, assignee, complexity for efficient workflows. | Must |
| FR-11 | Outlook/Salesforce Notifications: Bell icon + Outlook or Salesforce notifications to builders on assignment, to requestors on status changes (Not Ready, Ready to Launch, Launched). | Should |
| FR-12 | Reassignment Handler: Triggered by leave/capacity changes. Identifies builder's campaigns, reassigns to next-lowest workload builder, sends Outlook/Salesforce notifications. | Should |
| FR-13 | SLA Result Capture: Auto-sets "SLA Met" or "SLA Miss" on launch based on actual close date vs SLA Target. Requires miss reason if Miss for root cause analysis. | Should |
| FR-14 | Validation Rules: BU required fields enforcement, Not Ready Reason mandatory, Rerun Change Type enforcement, stage transition guards. Prevents inconsistent states. | Should |
| FR-15 | Path Component: Visual tracker showing 1–Briefing → 2–Build → 3–QA → 4–Activated with progress indicator. Helps builders see stage in lifecycle. | Should |
| ID | Requirement | Target |
|---|---|---|
| NFR-01 | Platform | Salesforce Developer Org (PoC); Phase 2+ will add Agentforce, Data Cloud, Marketing Cloud |
| NFR-02 | Flow action logging | All Flow actions (validation, assignment, SLA, notifications) logged with timestamp, actor, justification for audit trail |
| NFR-03 | Flow execution time | Record-triggered Flows complete within 5 seconds; sub-3-second ideal for user-facing actions |
| NFR-04 | Concurrent users | Support 50+ Ops + Builder users + unlimited BU requestors without degradation |
| NFR-05 | Mobile-responsive | Ops Kanban board, list views responsive on mobile; Screen Flow mobile-friendly |
| NFR-06 | Role-based access | BU sees only their campaigns; Builders see assigned queue; Ops sees all; Admin can override all fields |
| NFR-07 | Data integrity | Validation rules prevent inconsistent state transitions; Process Builder/Flows ensure atomic updates |
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| Flow orchestration — 3 core Record-Triggered Flows managing entire lifecycle | Medium | Medium | Each of the 3 core Flows has a single responsibility: Briefing (validate intake, calculate SLA), Pause/Resume (manage SLA clock fairness), Initial Assignment (route by workload). Well-documented; tested with 5+ test cases per Flow. Deterministic logic reduces risk vs. AI agents. |
| SLA pause calculation accuracy — Date/Time arithmetic in Flows | Low | Medium | Extensive testing with test data spanning timezones and DST; validation rule checks SLA Target is always in future; manual audit quarterly. |
| Builder directory maintenance — new joiners/leavers need Campaign Builder records | Medium | Low | Simple admin process documented; Phase 2 will automate with sync from HR system. |
| Adoption resistance — team used to informal Teams Planner process | Medium | High | Involved team in design; showed time savings in demos; Phase 1 delivers value (visibility, fairness) before Agentforce; Flows are transparent (not a black box). |
| Data quality in Salesforce briefs — BU submits poor data, validation can't catch it | Medium | High | Intake Validator Flow has required field checks; Phase 2 Agentforce agent will add semantic validation (e.g., audience criteria makes sense); BU training on brief template. |
| Future Agentforce migration — need to replace Flows with agents eventually | Low | Medium | Clean data model supports either approach (Flows or agents); Phase 2 agents wrap around Flows, not replace them; gradual transition minimizes risk. |
Phase 1 (COMPLETE) specifies: What Salesforce tracks (campaign brief, complexity, SLA, lifecycle). What Flows orchestrate (validation, routing, SLA pause/resume, QA item creation, notifications). How BU requestors, Ops leads, content builders, journey builders, and QA reviewers interact with the system. What success looks like (cycle time, SLA adherence, workload fairness, Flow reliability).
Phase 2 (PLANNED) will add: Agentforce agents for intake validation (semantic completeness), smart routing (AI recommendations with override), status notifications (proactive BU updates), and QA automation (journey validation). Flows remain the orchestration engine; agents add intelligence.
Next: Stage 4 designs the Salesforce page layouts, Flow diagrams, validation rules, list views, and Phase 1 testing strategy. This PRD is the spec for that detailed design.