Campaign operations on Asana
How to run the group's ad operations on Asana: target process, architecture, agents, configuration, data flow and build plan, each element traced to a requirement and checked against Asana's documentation.
01Captured use case
A media agency group runs paid media campaigns for brand clients across search, social, display and video, in several markets. Each campaign passes through five teams and six systems.
The group wants one platform for campaign operations: structured briefs, standard workflows, auditable approvals and live status for clients, leaders and finance.
- Brief-to-kickoff cycle time
- Hours spent compiling status
- Approval disputes
- Over- and under-allocated staff
- Scale
- 1,000+ users in five teams, across several markets
- Teams
- Client service, planning, buying, trafficking, creative studio
- Client reports
- Daily pacing and weekly campaign reports, built from media platforms and signed off before release
- Leadership
- Weekly status across clients and markets; read only
- Finance
- Delivered-versus-booked status per campaign for client billing and month-end close
- Systems
- Slack and Teams for collaboration; HubSpot and Salesforce for clients and deals; ADvendio for orders; Mediaocean for plans, buys and billing
- Policy
- Group single sign-on, automatic provisioning, SIEM logging, data held in a set region
- Out of scope
- Media buying itself, which stays in Mediaocean; pacing and performance data, which stay in media platforms
Brief
Client service captures objectives, budget, channels, markets and dates.
PainBriefs arrive incomplete. Planners chase details.
Plan
Planners build the media plan and staff the campaign. The client approves.
PainEach campaign type starts from scratch. Staffing relies on instinct.
Buy and traffic
Buyers book media in Mediaocean. Traffickers set up placements and creative.
PainHandoffs between teams are manual.
Review
Creative and client teams review assets before launch.
PainFeedback sits in email and chat. Sign-offs leave no trail.
Report and close
Pacing and campaign reports go to the client. Finance bills delivered media and closes the month.
PainNo cross-campaign view. Status is compiled by hand.
How should Asana be set up and connected to run this from brief to month-end close, and what does it take to build?
02Design summary
One Asana project per campaign, kept standard by templates and a bundle.A form takes the brief, rules hand work between teams, five approval gates record sign-off and portfolios replace hand-compiled status.
Read briefs, draft OKRs, status and variance notes, and triage sync failures.Each output stays a draft until a named person approves or posts it. No agent writes to Mediaocean or billing.
Four Asana apps and one integration layer, under three data contracts.Mediaocean keeps plans, bookings and billing. Asana reads milestones, delivery and billing status from it and never writes back.
Enterprise with Compliance Management and AI Teammates.Capacity planning, the bundle, single sign-on and SCIM start on Enterprise. Compliance Management feeds the audit log to the SIEM.
12 weeks in seven phases, with a one-market pilot.83–98 consultant days, 18–21 of them for the agents. Answers to Q4 and Q5 settle the integration ranges.
CoverageAll 14 requirements trace to a component in section 05 or 07. Video proofing is partial and UK data location is open; section 10 holds both questions. Campaign OKRs are added to make the success of each campaign measurable.
03Target process
Matched to Accelyte's Media and agencies process map, campaign delivery. Five of its seven stages apply; pitch and post-campaign review sit outside this scope. Numbers give the order of work.
- Incomplete brief
- Step 2 lists the gaps on the brief and returns it to client service. Planning never sees it.
- Plan or creative rejected
- The stage reopens and its gate repeats. Each decision stays on the approval task.
- Under-delivery
- Step 17 drafts a note when delivered falls below booked; finance reviews it before close.
- Sync failure
- The triage step opens a task for buying with the likely cause. The nightly check retries.
| Stage | Today | In the design |
|---|---|---|
| Brief | Briefs arrive incomplete | The brief agent reads the client's document and fills the brief; incomplete briefs return before planning sees them. OKRs are drafted for G1 |
| Plan | Each campaign starts from scratch | The campaign project and its goal are created from approved data; the capacity plan staffs by role before names are known |
| Buy and traffic | Manual handoffs | Rules assign the next team when a stage completes; milestones and delivery arrive from Mediaocean |
| Review | Feedback in email, no trail | Proofing on the asset; approval tasks record who signed off and when |
| Report and close | Status compiled by hand | Status and variance notes arrive as drafts; dashboards and campaign goals show progress to leaders |
04Solution architecture
-
Asana runs the work. Mediaocean keeps the money.
Plans, bookings and billing stay in Mediaocean. Asana holds the plan ID, milestones, delivery and billing status, read one way and never written back. Finance keeps one source of truth for billed media.Pattern system of work, system of record · Vendor Mediaocean integrations27
-
Templates start campaigns. A bundle keeps them standard.
Four templates set up each campaign by type. One bundle carries the stage sections, shared fields and handoff rules, and an edit to it reaches every campaign that uses it. With 1,000 users, that stops each team drifting to its own version.Docs bundles, templates18, 1 · Map campaign delivery stages
-
One integration layer, checked nightly.
An iPaaS runs the four custom flows with retries, logs and one token per flow, under Asana's 1,500 requests a minute. Webhooks deliver at most once, and in August 2026 task change events stopped for about a day. A nightly job re-reads both sides and corrects drift.Docs webhooks, rate limits25, 16 · Practitioner thread26 · Pattern integration layer with reconciliation
-
Rules hand off. People approve.
Rules move work and assign the next team when a stage completes. Five gates stay with named approvers, and G1 also approves the campaign OKRs.Docs rules, approvals23, 4 · Pattern human gates, automated handoffs
-
Access follows the group directory.
Sign-in and provisioning come from the group identity provider. Leaders and finance readers take view-only seats. Integrations run as one integration user on the campaign teams only, because a service account with full permissions reaches all organisation data.Docs SSO, SCIM, view-only, service accounts7, 8, 19, 20 · Pattern least privilege
-
Models draft, code writes, people approve.
Agents read briefs, draft OKRs, status and variance notes, and triage sync failures. Structured writes go through code against a data contract, and client-facing output passes a named person. The OKR agent writes through the REST API, because neither the MCP server nor AI Teammates can create goals.Docs MCP server, AI Teammates, goal metrics30, 31, 33 · Pattern models draft, code writes, people approve
05Platform configuration
- Group portfolioLeaders, view-only
- Client portfolioOne per client
- Campaign projectFrom template, bundle attached
- Stage sectionsBrief to close
- Approval tasks G1–G5Named approvers
- Campaign goalObjective, linked to its project
- Key-result sub-goalsTwo or three, one metric each
- Campaign briefsIntake project with the form
- TeamsOne per function, six
| Field | Type | Set by |
|---|---|---|
| Client, market | Single-select | Brief form |
| Campaign type | Single-select | Brief form |
| Channels | Multi-select | Brief form |
| Flight start, end | Date | Brief form |
| Budget | Number, currency | Brief form |
| Primary KPI, target | Single-select, number | Brief form |
| Mediaocean plan ID | Text | Integration |
| Billing status | Single-select | Integration |
| Delivered vs booked | Number, percent | Integration |
Fields set by the integration are corrected by the nightly check if someone edits them by hand. Field values follow contract C1 in section 11.
| Component | Configuration | Requirement met | Plan | Source |
|---|---|---|---|---|
| Intake | ||||
| Brief form | One form in Campaign briefs. Branches by campaign type, channel and market. Objectives, budget, flight dates, primary KPI and target required. | Structured brief, routed by type | Advanced | 2, 1 |
| Brief agent | AI Teammate, default assignee of new briefs. Reads the client's brief from email or files, fills empty fields, comments with gaps. | Structured brief | Add-on | 31, 1 |
| Work model | ||||
| Campaign templates | Search, social, display, video. Stage sections, milestones and approval tasks G1–G5. | Repeatable framework per type | Starter | 1 |
| Campaign bundle | Stage sections, shared fields and handoff rules, attached to every campaign project. | Standard stages with logic | Enterprise | 18 |
| Portfolios | One per client, nested in a group portfolio. The market field filters each view. | Every campaign in one view | Advanced | 1 |
| Automation | ||||
| Handoff rules | Stage task completed: move to the next section, assign the next team's lead, post to its channel. | Automatic handoffs | Starter | 3, 23 |
| Approval rules | Approval status changes: notify the requester; on rejection, reopen the stage task. | Auditable sign-off | Advanced | 23, 4 |
| Status drafts | AI Studio workflow drafts each weekly status from the project as a comment; client service edits and posts it. | Roll-up status without manual work | Starter | 21, 22 |
| Review | ||||
| Approvals | Five gates, each with a named approver. Decisions stay on the approval task. | Auditable sign-off at each gate | Advanced | 4 |
| Proofing | Images and PDFs marked up on the task. Video reviewed in the studio's tool and linked on G3. | Creative review, partial | Advanced | 4 |
| Resourcing, reporting and goals | ||||
| Capacity plan | Allocations by role in weekly hours. Placeholders hold capacity before names are known. | Resource visibility before commitment | Enterprise | 6 |
| Dashboards | Leadership: campaigns by status, client and market. Finance: billing status and delivered versus booked. | Roll-up status without manual work | Advanced | 5 |
| Campaign goals | One objective per campaign, progress taken from two or three key-result sub-goals. Created after G1; delivery values daily from Mediaocean. | Measurable campaign outcomes, added | Advanced | 34, 33 |
Sign-in, provisioning, audit and data location are set in section 07.
Capacity planning, placeholders, the bundle, single sign-on, SCIM and view-only seats set the plan. AI Teammates include 5 requests per user a month, up to 50 per account; above that, prepaid requests cost $0.50 each, sized from brief volume. Data residency joins only if Q2 requires it; Timesheets and Budgets only if Q3 does.1, 6, 18, 19
