Client delivery playbook
The 18-step Zodiac Tech Client Delivery Playbook — from confirmed payment to renewal, with the owner and panel for every step.
Client delivery playbook
This is the standard way Zodiac Tech delivers a new client on the platform. Follow it top to bottom: every step lists who does it, where it happens, and the output that proves the step is done. Do not skip ahead — later steps depend on earlier ones (launch, in particular, depends on QA).
Who this is for
Super Admins, account managers and Meta-ops staff delivering a client from "payment received" to "renewed". Keep this page open as your run sheet.
- Difficulty: Medium
- Time: 15 min (reading); the full delivery spans days
- Prerequisites: A paid or approved client, and Super Admin (or agency) access.
The 18 steps
1. Confirm payment
Who: Super Admin. Where: /super-admin/billing/agreements + /super-admin/billing/commercial-payments.
Output: The agreement is active — meaning the provider confirmed the payment via webhook, not just that the client returned from a redirect. Never start delivery on a redirect alone.
2. Create the business
Who: Super Admin. Where: /super-admin/tenants → New business.
Output: Workspace created, client admin user created, onboarding marked pending. See Businesses (tenants).
3. Set up the commercial agreement
Who: Super Admin. Where: /super-admin/billing/agreements → Create (5-step wizard: terms → pricing → services → review → send).
Output: The client has the agreement in their portal and can approve it. Details in Commercial agreements.
4. Start guided onboarding
Who: Super Admin (activation is already pending from step 2). Where: /super-admin/meta-ads/client-onboarding.
Output: The client's guided setup (/admin/guided-setup) is live with the 12 client steps. See Client onboarding dashboard.
5. Send the client onboarding link
Who: Super Admin. Where: Business 360 detail → Onboarding link. Output: The client has a signed link (valid 72 hours) that lands them directly in their setup. Regenerating revokes the old link.
6. Monitor progress
Who: Super Admin / Account Manager. Where: /super-admin/meta-ads/client-onboarding.
Output: Every stuck client is visible (⚠ 24h+) and nudged with Request Action. The daily sweep (08:15) flags stalled required steps automatically.
7. Configure the CRM
Who: Super Admin, with the client doing their part in /admin. Where: Business 360 internal checklist + the client's guided setup.
Output: Internal steps CRM configuration, Sales process review and Lead routing review are Completed; the client has finished their sales-process, routing and follow-up steps.
8. Connect Meta
Who: Client (guided setup), verified by the Account Manager. Where: Client /admin (guided setup → Connect Meta), SA board for the health column.
Output: A meta/instagram lead-source connection showing Connected on the onboarding board, with Page and Lead Forms selected. See Connect Meta and OAuth & permissions.
9. Connect WhatsApp
Who: Client (guided setup), verified by Super Admin. Where: Client /admin; check the read-only WhatsApp diagnostics section on the business edit form.
Output: WABA and phone connected, webhook healthy, templates synced. See WhatsApp Business API.
10. Build the campaign
Who: Ads Specialist. Where: Meta-ops console (/agency panel).
Output: Campaign prepared on the client's ad account, ready for review. The Ads Specialist can create, edit and pause — not launch. See Campaigns.
11. Prepare creative
Who: Creative Specialist. Where: Meta-ops console. Output: Ads and creatives attached to the campaign, ready for the QA pass. See Creatives.
12. Set up tracking
Who: Ads Specialist. Where: Meta-ops console + client CRM. Output: Internal step Tracking Completed — attribution and lead-source mapping verified end to end. See Tracking & attribution.
13. Run a test lead
Who: Client (with Account Manager watching). Where: Client guided setup → Test your setup. Output: A test lead lands in the CRM with the correct source, assignment and follow-up — then the step is marked complete. See Test your setup.
14. QA review
Who: QA Reviewer. Where: Meta-ops console / QA queue. Output: QA passed — the internal QA step is Completed and launch is unlocked. Only the QA Reviewer role can approve launch.
15. Launch
Who: QA Reviewer (the only role with meta.campaign.launch). Where: Meta-ops console.
Output: Campaign live; internal step Launch Completed. This is the moment the client pipeline starts filling.
16. Turn on reporting
Who: Account Manager. Where: Client /admin reports + scheduled reports; Meta daily brief.
Output: The client receives regular performance reporting (lead volume, source performance, attribution, funnel) and the internal Monitoring step is running. See Reports.
17. Support
Who: Support Agent. Where: Meta support desk + client Help Center (/admin/help).
Output: A working support channel; health monitors keep watching (Meta health every 6 hours, ops scan every 30 minutes) while the client goes about their day.
18. Renewal
Who: System + Super Admin oversight. Where: /super-admin/billing/commercial-invoices and the agreement's Subscription tab.
Output: The renewal invoice is generated (daily 06:30), paid via the client's authorization, and the service continues. See How billing & renewals work and Invoices & payments.
Expected result
A client goes from confirmed payment to live campaigns and a recurring renewal without a single step happening "somewhere offline". Every hand-off has a record: onboarding steps, internal checklists, agreements, invoices and audit entries.
Common mistakes
- Starting delivery before the provider confirms payment. A redirect from the payment page is not confirmation — wait for the webhook.
- Launching before QA passes. The platform blocks it for a reason; skipping QA ships untested tracking.
- Treating step 6 as optional. The board is how you avoid a client silently stalling at week two.
- Doing the client's guided steps for them. Configuration choices (stages, routing) must come from the client — that is what makes the CRM theirs.
- Forgetting renewal oversight. Agreements renew independently, but someone still needs to watch failed payments — see Payment failures & restrictions.
Troubleshooting
| Symptom | What to check |
|---|---|
| Agreement still not active after client says "paid" | Check provider confirmation in the payments list; failed/absent webhooks mean not confirmed |
| Onboarding board shows Meta "Needs attention" | Re-run the client connect flow; check Meta won't connect |
| Launch button unavailable | The logged-in agency user lacks the QA Reviewer role — see Users & agency team |
| Test lead never arrives | Check the lead-form allowlist and webhook health — Leads not entering the CRM |
| Client never received the onboarding link | Links expire after 72h; generate a fresh one |
Technical details
- Onboarding model:
business_onboarding+business_onboarding_steps; steps inApp\Support\OnboardingSteps(9 internal steps across Super Admin and Ads Specialist owners). - Launch gate:
meta.campaign.launch, held only byqa_reviewer(database/seeders/AgencyRolesSeeder.php). - Billing: agreement activation is provider-verified (
App\Services\CommercialBilling\BillingService::verifyAuthorization()); renewals viaApp\Jobs\Billing\CreateRenewalInvoice(daily 06:30). - Meta health:
leadhub:meta-healthevery 6h;leadhub:meta-ops-scanevery 30 min.
Related guides
Was this page helpful?
Thanks — noted. ✦