Guide
Marketing agency automation with SpendSignoff: managing client accounts at scale
Agencies managing ten or more client ad accounts need a system that reads all of them, surfaces what needs attention, and drafts changes at scale — without any single change going live without the account manager signing off.
The agency scaling problem
An account manager at a mid-size agency typically handles 8-15 client accounts. Each account has its own login, its own budget pacing rhythm, and its own set of campaigns that need attention on different timelines. The standard workflow is a morning audit loop: log into each platform, check pacing, check anomalies, log out, repeat.
That loop takes 2-3 hours on a good day. It scales linearly with client count. And it misses things — a campaign that looked fine at 9 AM can exhaust its budget or spike its CPA by noon, but no one checks again until the next morning.
SpendSignoff reads all connected accounts continuously and surfaces the prioritized draft queue across clients. The account manager reviews a single queue sorted by urgency and dollar impact, rather than repeating the same login-audit-logout loop for each client.
Multi-account architecture in SpendSignoff
SpendSignoff uses an organization model that matches how agencies are structured:
- One SpendSignoff org per agency — the organization is the billing and permission root. All team members and all client accounts live under one org.
- One ad account connection per client — each client Google Ads or Meta account is connected as a separate linked account under the agency org. Client data is org_id-scoped and never mixed.
- Owner and member roles — org owners can connect accounts, manage billing, and see all client data. Members can read accounts, review drafts, and approve changes for accounts they are assigned to.
- Per-account approval routing — drafts for a specific client account route to the assigned team member. A junior analyst can see and approve drafts for their assigned accounts; they cannot see accounts they are not assigned to.
The unified draft queue across clients
The approval queue in SpendSignoff shows drafts across all connected accounts, sorted by a combination of urgency (anomaly-triggered drafts first) and dollar impact (proposed change multiplied by daily spend at stake). An account manager opening the queue at 9 AM sees the ten highest-priority actions across all their clients, not a per-client list they have to navigate.
Each draft shows the client account, the platform (Google Ads or Meta), the change type (budget, bid, negative keyword), the trigger signal, and the before/after values. The account manager can approve, reject, or defer each draft individually, or batch-approve a set of similar drafts after reviewing them.
Deferred drafts expire after 24 hours and return to the queue as a new analysis cycle. If the underlying condition has resolved (the campaign stopped pacing, the bid normalised), the new cycle may produce no draft, which keeps the queue from accumulating stale items.
Client accounts are protected by the same approval gate regardless of role
mcp.read and mcp.draft only. Approval requires a human action in the SpendSignoff app. Every approved change is recorded in the org-scoped KMS-signed audit log with the approving user and timestamp, giving clients a full record on request.Setting up an agency org in SpendSignoff
Create the org and invite team members
Sign up with your agency email. The account creates an org automatically. Invite team members from the Settings screen; new members join as the member role by default. Promote to owner as needed.
Connect client ad accounts
From the Accounts screen, connect each client Google Ads or Meta account via OAuth. You will need the client to grant your agency MCC (Manager Account) access on Google Ads, or add your agency as a partner on Meta Business Manager, before the OAuth handshake can complete.
Assign accounts to team members
In Accounts settings, assign each connected account to the team member responsible for it. Assigned members see that account in their approval queue. Unassigned accounts default to org owners.
Configure loop parameters per account
Set the autonomy loop parameters for each client account individually: daily budget ceiling, maximum bid change per cycle, and draft frequency cap. Client accounts with tighter approval windows may want a lower frequency cap to keep the queue manageable.
Reporting across clients
The SpendSignoff reporting tab shows unified metrics per account, including the cross-platform ROAS calculation for accounts with both Google Ads and Meta connected. Agency accounts can filter the reporting view by client account or see an aggregated view across all connected accounts.
Client-level reporting exports are in the product roadmap. In V1, the reporting tab is the canonical view. For clients who need scheduled PDF or CSV reports, the current recommendation is to screen-export the reporting view on a weekly cadence.
Next
Concepts
Drafts, the approval queue, the autonomy loop, roles, and the audit log — the full mental model.