# Run a Campaign well


This page is for a Developer whose Campaign is live or about to launch. It covers the work of running it: testing the reward on a small budget, getting updates in Slack, reading the numbers that show quality and speed, and deciding when to change the price. Building the workflow and passing the launch checks come first; see [Test, launch, and manage a Campaign](/tasks/launch).

## Test the reward on a small budget

The right reward is the lowest one that still brings the Contributors you want and work you can accept, at the speed you need. You find it by running a small batch, reading the result, and changing one setting at a time.

Four settings decide what a test batch can cost:

| Setting | Where you set it | What it controls |
| --- | --- | --- |
| **Budget cap (USD)** | In the draft, the **Pricing & Budget** step of **Test & Launch** | The most the Campaign can spend. Launch reserves the whole amount, and after launch it can only be raised |
| **Reward (per accepted submission)** | In Builder, the **Cost** section of the human step | The base pay for one accepted submission |
| **Items to collect** | The same section | How many accepted submissions the step pays for, across all Contributors. It also caps how much work can be claimed |
| **Limit per contributor** | The **Settings** section of the same step | How much one Contributor may submit: **Per day**, **In total**, or **No limit** |

A cap can be small. The portal sets no minimum amount; a Campaign whose steps pay a reward only needs a budget above zero. **Pricing & Budget** also accepts a cap below the projected spend. It then warns that the budget may fund fewer records than projected, and that the Campaign pauses when the budget is exhausted. [Billing, budgets, and reconciliation](/collaboration/billing#set-and-raise-a-campaign-budget) covers how the cap is reserved and raised, and [Configure a workflow](/tasks/workflow#supply-human-work-and-capacity) covers how the places in **Items to collect** are counted.

The reward you enter is the pay at a reputation factor of 1.0×. A Contributor's quote can scale that reward by the factor of their own tier, from 0.5× to 1.4×. That is why **Pricing & Budget** shows a projected range and not a single figure. As an illustration, a reward of 0.50 USDC and 100 **Items to collect** come to between 25 and 70 USD in rewards. Where a platform service fee applies, it is added on top. The tiers and their factors are listed in [Understand tiers, eligibility, and pay](/learning/reputation#understand-tiers-eligibility-and-pay).

One round of the test looks like this:

1. Launch with a small **Budget cap (USD)** and a small **Items to collect**.
2. Let the batch reach at least ten review decisions. Below ten, the portal shows the counts and no acceptance rate.
3. Read the result as described in [Read quality and speed](#read-quality-and-speed).
4. Change one setting. [Adjust the price](#adjust-the-price) helps you choose which.
5. Run the next batch and compare it with the last one.

When a batch gives the quality and speed you need, scale up. Raise **Items to collect** in Builder, and raise the budget in the **Budget & costs** section of **Setup**.

> **Planned: a royalty product.** Humanbased plans to release a royalty product in the first quarter of 2027. It is intended to give Contributors a stronger incentive and to lower the upfront data cost for Developers. It is not available today.

## Change the reward while the Campaign runs

The reward belongs to the human step, so you change it in Builder. Open the Campaign and select **Open builder**. Open the human step and edit **Reward (per accepted submission)**. Save the step, then save the canvas.

On a live or paused Campaign, that canvas save publishes the change as soon as you confirm with **Save and apply**. There is no test step between your confirmation and Contributors seeing the new reward, so read [what the confirmation changes](/tasks/define#save-and-revise) before you save.

For pay, the dividing line is the moment a Task is claimed:

| Task | Pay |
| --- | --- |
| Claimed after the save | Quoted from the new reward |
| Already claimed when you save | Keeps the pay quoted at the claim. That quote fixed the reward in force then and the Contributor's tier factor |

So what you owe for work already in hand stays as quoted, whichever way you move the reward.

**Items to collect** and **Limit per contributor** are settings of the same step. Changing them on a running Campaign goes through the same canvas save.

## Get updates in Slack

A connected channel receives this Campaign's events as they happen. Your team learns about a pause, a spent budget, or submissions waiting for review without opening the portal.

### Connect a channel

Any member of the Campaign's organization can connect a channel.

1. Open the Campaign and select **Setup**, then the **Notifications** section. It contains the **Slack** panel.
2. Select **Add to Slack**. Slack opens its authorization page.
3. Choose the channel that should receive the updates, and approve.
4. Slack returns you to the Campaign. Open **Setup** and **Notifications** again. The **Slack** panel now lists the channel.

If your organization has already connected a channel, the panel also offers **Connect an existing channel**. It attaches this Campaign to that channel without a new authorization. To stop the updates, select **Disconnect** on the channel's row.

### Choose what arrives

Events come in two groups:

| Group | Events |
| --- | --- |
| **Alerts** | Campaign launched, launch reverted, paused, and paused by the system. Budget spending reaching 50%, 80%, and 95% of the budget, spending back under a threshold, and budget exhausted. Submissions waiting for review for more than 24 hours. An appeal opened by a Contributor |
| **Activity** | New submission, submission accepted, and submission rejected. Campaign resumed, finished, and archived |

A new connection carries both groups and sends each event as it happens. To change that, select **Edit** on the channel's row. The two checkboxes at the top, `alert` and `activity`, switch a whole group on or off. **Event types** switches single events. **Frequency** sets each group to **As it happens**, **Hourly summary**, or **Daily summary**. On a busy Campaign, keep **Alerts** as they happen and move **Activity** to a summary.

### Approve or reject from Slack

A submission that needs a person's decision arrives as a card with **Approve** and **Reject** buttons and a **View submission** link. The buttons work once you have linked your own Slack user to your portal account:

1. In the Developer portal, open **Account** from the menu at the bottom left.
2. In the **Slack** row, select **Connect Slack**. The portal shows **Your Slack link code**.
3. In Slack, run `/link-account` followed by that code within 10 minutes.

**Approve** records the decision. **Reject** opens a dialog that asks for a reason, and the Contributor sees what you write. The decision is recorded under your portal account. If your Slack user is not linked, or your account is not allowed to decide that submission, Slack tells you privately and the submission stays as it was.

### If Slack stays quiet

| What you see | What it means | What to do now |
| --- | --- | --- |
| **Unreachable** on the channel's row | The last delivery to that channel failed. The connection may have been revoked in Slack | Select **Disconnect**, then connect the channel again with **Add to Slack** |
| After you select **Add to Slack**, the panel reads "Slack authorization did not open, so nothing was connected. Allow popups for this site and try again." | The portal could not start the authorization | Try again. If the message returns, write to [hello@humanbased.ai](mailto:hello@humanbased.ai) with the Campaign ID |
| After you approve in Slack, the **Slack** panel still reads "No channel connected. This campaign's updates stay in the portal." | The authorization did not complete. It was declined, no channel was chosen, or more than 10 minutes passed before you approved | Select **Add to Slack** again, choose a channel, and approve |
| In **Account**, the **Slack** row reads "Locked — create or join an organization to connect a Slack workspace." | Your account belongs to no organization | Create or join an organization, then return to **Account** |
| Slack answers "Link your Slack account in the developer portal, then try again." | Your Slack user is not linked to a portal account | Follow the three steps above |

## Read quality and speed

A Campaign has four views: **Overview**, **Reviews**, **People**, and **Setup**. These are the numbers worth checking after each batch:

| Number | Where it is | What it tells you |
| --- | --- | --- |
| **Submission acceptance · All decisions** | The **Output** panel of **Overview** | The share of decided submissions that were approved |
| Accepted records, shown as "of N records accepted" | The **Output** panel of **Overview** | How much finished output the Campaign has produced |
| Records accepted in the last hours, with the time the rest needs at that rate | The status line above **Overview** | The current speed |
| Queued assignments, claimed tasks, and submissions awaiting review | The **Workflow** panel of **Overview** | Whether work is waiting for Contributors, in progress, or waiting for your review |
| Submissions awaiting review, and the longest wait | The **Needs your attention** panel of **Overview** | Whether your own reviewing is slowing the Campaign |
| Per step: total submissions, and how many need review, are approved, rejected, or duplicate | The **Task submissions** block of **Reviews** | Which step loses work |
| **Campaign acceptance** of one Contributor | The **Acceptance history** column of **Reviews**, and the **Success** column of **People** | Whether rejections are spread out or concentrated |
| Typical time, shown as "Typical … · Median" | The **Volume & time** column of **Reviews** | The median time from claim to submit at that step. It includes breaks and waiting |
| Contributors on the roster, and how many have submitted | The line above the roster in **People** | Whether the people who join go on to work |
| **Available for new work** | The **Budget & obligations** panel of **Overview** | The budget left after what you already owe. From 80% of the budget spent, a banner at the top of the Campaign states the amount left |

### Follow the acceptance rate

The rate is approved ÷ (approved + rejected + duplicate). A duplicate counts as a decision, and work awaiting review is left out. With fewer than ten decisions the portal shows **Too few to rate** in place of a percentage. The Campaigns list repeats the rate on each card, rounded to a whole percent.

The figure covers every decision since launch, so one new batch moves it slowly. To see what a change did, compare batches:

1. Before you change a setting, open **Reviews** and note the approved, rejected, and duplicate counts in **Task submissions**.
2. After the next batch, read the three counts again.
3. Subtract the earlier counts from the later ones. The new approvals divided by the new decisions is the rate of that batch alone.

**Planned.** A Campaign health view with charts of submissions, workflow health, and acceptance rate over time is planned. Until it is available, use the comparison above.

### When rejections are high

Find the cause before you change the price:

1. In **Reviews**, read **Task submissions** to find the step with the most rejected or duplicate submissions.
2. Open several rejected submissions with **Review**. **Review outcome** shows the verdict and the recorded reason.
3. In **People**, compare the **Rejected** and **Success** columns across Contributors.

| What you find | What it usually means | What to change |
| --- | --- | --- |
| Rejections are spread across many Contributors | The instructions or the form are unclear | Rewrite the brief in the **Campaign details** section of **Setup**, or fix the form in Builder. See [Define work and participation requirements](/tasks/define) |
| Rejections are concentrated in a few Contributors | Those accounts are the problem, and the task itself is sound | A Campaign owner can select **Blacklist** on that Contributor's row. The Contributor is removed from the Campaign and can no longer join, claim, or submit there. Work they already hold can still be turned in, and **Lift ban** reverses the decision. You can also cap everyone with **Limit per contributor** |
| The reasons point to missing skill or knowledge | The Campaign admits people who are not prepared for the work | Tighten the entry conditions; see [Change who can join](#change-who-can-join) |
| The reasons point to rushed or careless work, and the instructions are clear | The reward does not pay for careful work | See [Adjust the price](#adjust-the-price) |

## Change who can join

Who does the work depends on the entry conditions. They sit in the **Entry Gate** step in Builder:

| Condition | What it does |
| --- | --- |
| Required agreement, required course, and profile conditions | Admit only Contributors who signed, passed, or match. Profile conditions can also be edited in the **Requirements** section of **Setup** |
| **Require an invite code to join** | Admits only people who present this Campaign's code. You generate the code and share it |
| **Only members of selected teams can join** | Admits only members of the Contributor teams you select. Contributor Teams are not open in the production Contributor portal, so with this switch on nobody can join there; see [Feature availability](/help/updates) |

To widen the group, remove or relax a condition. To narrow it, add one. On a running Campaign an Entry Gate change is a canvas save and takes effect at once, and the invite-code actions take effect at once without a save. [Configure a workflow](/tasks/workflow#entry-gate) describes each condition, and [Meet participation requirements](/learning/eligibility) shows what a Contributor sees.

## Adjust the price

Change the reward after you have ruled out the instructions and the entry conditions. Move it in small steps, so that each batch gives you one clear signal.

### When the reward is too low

| What you observe | What it usually means | What to change |
| --- | --- | --- |
| **People** lists few Contributors, and the **Workflow** panel of **Overview** keeps a high number of queued assignments | Few of the people who qualify find the reward worth joining for | Raise **Reward (per accepted submission)** by one step. If the entry conditions are stricter than the work needs, relax them |
| Contributors have joined, yet the line above the roster in **People** shows few who have submitted | The reward does not cover the time one Task takes | Compare the reward with the typical time in **Reviews**. Raise the reward, or shorten the form |
| The work comes from Contributors outside the group you wanted. In **People**, open the Contributors with the highest **Submitted**; **Standing** shows each one's tier and reward multiplier | At this price, the Contributors you wanted pass and others take the work | Raise the reward, or restrict entry with a course, a profile condition, or an invite code |
| The acceptance rate in **Overview** falls and the rejected count rises in **Task submissions**, while the instructions have not changed | Careful Contributors are leaving, or people rush to make the pay worthwhile | Read **Review outcome** on rejected work first. If it shows rushed work, raise the reward |

### When the reward is higher than needed

| What you observe | What it usually means | What to change |
| --- | --- | --- |
| Queued assignments are claimed as soon as they appear, the status line shows the rest finishing sooner than you need, and the acceptance rate holds steady | You are paying more than this work requires | Lower the reward by one step. The new amount applies to Tasks claimed after the save |
| The budget runs down faster than you planned: budget alerts arrive early, and **Available for new work** shrinks faster than the accepted count grows | Contributors in higher tiers are doing the work, and an accepted submission pays up to 1.4× the reward | Keep the reward and raise the budget if the quality is worth the price. Otherwise lower the reward |
| A few Contributors hold most of the **Submitted** count in **People**, and the duplicate count rises in **Task submissions** | The reward is high enough to attract volume over care | Set **Limit per contributor** to **Per day** or **In total**, then lower the reward |

For the single records behind these numbers, see [Follow submission results](/tasks/results#review-work-as-a-developer). For what the Campaign has spent, see [Billing, budgets, and reconciliation](/collaboration/billing#reconcile-one-campaign).
