Build a campaign#
Building a contribution campaign is seven decisions. Timberline's Segment & Channel Budget Input is a worked answer to all seven, so the fastest way to learn is to build alongside it, open it in one tab and follow this in another.
1. Start from a form template, not a report#
A campaign's source is the workbook contributors will type into. It is a normal Excel workbook with two extra things:
Input bindings: a formula that says "this range of cells writes to this model, along these dimensions". In the budget form:
=RW_CONTRIBUTION_INPUT($D$10:$D$33, "volume", "Account", $A:$A, "Channel", $B:$B, "Market", $B$1, "Time", $B$2, "Measure", "Volume")Read it as: range, then model name, then alternating dimension, source. A source can be a column (the value varies down the range) or a cell or literal (fixed for the whole block).
Validation: optional per-cell checks:
=rw.contribution.check(D10, ISNUMBER(D10), "Not a number", FALSE)Cell, test, message, and whether failing blocks submission.
Keep these formulas in hidden rows or columns. Contributors should see the grid, not the plumbing.
2. Decide what one form covers#
This is the parameter decision, and it determines how many forms you generate and who owns each one.
The budget campaign sets Market to one report per item over three chosen model
elements, so one form per market. Had it been set to an employee dimension instead, you would get
one form per person.
Ask: what is the smallest unit somebody owns end to end? That is your form.
The budget campaign also sets Year to one page per item from the Current Year global
parameter, so the year is scope rather than a separate form, and rolling the year re-points the whole
campaign from one place.
3. Name the forms so people recognize them#
The form file name is built from the parameters, {Market} Segment and Channel Input, producing
USA - East Segment and Channel Input.xlsx. A contributor with several forms should be able to tell
them apart at a glance.
Worksheet names can be parameterized too: the compensation form renames its sheets
%param:Employee%-Comp and %param:Employee%-Sales.
4. Decide whether anyone approves#
The budget campaign requires approvals and allows approvers to edit forms. That combination says: the approver is a reviewer with authority to correct, not a rubber stamp. The compensation campaign has no approvals at all.
Approval is not only a workflow decision, it changes what your export can trust. See step 6.
5. Generate and assign#
Generating creates one form per parameter value. Assigning attaches a contributor and, if you required approvals, an approver to each.
Timberline assigns individuals, one per form. You can also assign groups, which is what you want when several people share ownership.
The shape worth copying: contributors are the regional people, approvers sit one level up and cover more than one form. In the demo, one approver covers both US markets.
6. Wire the write-back#
An export action maps collected data into a cube. The budget campaign has two, and they differ on purpose:
Plan1 |
FixedCosts |
|
|---|---|---|
| Target cube | THC_Sales |
THC_IncomeStatement |
| Trigger | none: run on demand | form status change |
| Includes unapproved data | no | yes |
| Write-back | proportional | proportional |
Plan1 is the end-of-cycle export: run it once the numbers are approved, and it takes only approved
data. FixedCosts is the continuous export: it fires whenever a form moves state, keeping the model
warm while people are still working, and accepts that some of what it writes is not yet approved.
Choosing between those two shapes is the real design decision. See Export campaign data for the dimension mapping.
7. Automate the human parts#
The budget campaign carries ten tasks:
| Task | Trigger | Purpose |
|---|---|---|
| contributor / approver invitation | daily 08:00 | tell people they have a form |
| contributor / approver reminder | armed, no clock | chase-ups when you want them |
| contributor / approver workflow | form status change | notify when a form moves |
Plan1, FixedCosts |
on demand / status change | the exports |
| stop campaign, auto archive | disabled | the wind-down pair |
All six notifications use the shared message templates, which reference campaign fields: project name, form name, and a form link that takes the recipient straight to their form. One template serves every campaign.
Configure the wind-down pair even if you leave it disabled. Knowing how the cycle ends (stop input, then archive) is part of designing it.
Before you call it done#
- Generate, then open a form as the contributor and check it reads as a form, not as a spreadsheet with plumbing showing.
- Type something invalid and confirm the validation fires.
- Submit, approve, export, and check the number in the cube.
- If the campaign is large, size it before you invite anyone: see Campaigns at large scale.
Related#
- Update an input form · Export campaign data
- Customer guide: Author a contribution campaign
Feedback on this page
Comments, questions, requests, or something missing or unclear? Email us - the page you are on is filled in for you.
Email feedback on this pageOr write to support@reportworq.com directly.