Campaign Configuration
A campaign mobilizes your supporters to contact decision makers: elected officials, administrations, companies or local businesses. This page walks through the campaign editor step by step: what each step is for, what you can configure there, and what blocks publishing. Your AI assistant reads it too when it works on a campaign with you.
How a campaign works
A supporter opens the campaign page and picks a channel. If the campaign asks custom questions, they answer them. Activoice's AI then writes a personalized message from your briefing, the recipient's details and the supporter's answers, in the tone set by your content samples. The supporter reads it, adjusts it if they want, and sends or posts it.
The channels a campaign can offer:
- Email — an email sent to one or several recipients.
- Form — a message pasted into a contact form, either one page you choose or each recipient's own form.
- Call — a phone call, guided by a script you write.
- Twitter, Facebook, Instagram, LinkedIn, TikTok — a public post addressed to the recipient.
- Review — a public review of a place found on Google Maps. This channel cannot be combined with the others.
Where the public toolbar is shown, supporters can open My information from the initials or profile button to edit their first name, last name and email without leaving the current step. The dialog also uses the page's configured CRM fields and newsletter settings. Save remembers the updated identity on the device and sends it to the CRM when the supporter opts in or their consent is remembered. It leaves an already generated message unchanged; the next generation uses the updated identity. In an embed, this button follows the withToolbar setting.
Each editor step has its own page in your Activoice admin, at https://admin.activoice.org/campaigns/<campaign_id>/edit/<step>; the step slug is given with each section below.
Campaign (campaign)
The identity of the campaign: its name, the public description shown on the campaign page, its language, and the channels offered to supporters. Cover images for desktop and mobile are uploaded here too: pick a landscape image for desktop and a portrait one for mobile, each is resized and cropped to fit. Your AI assistant can upload them through a temporary signed upload when it has access to the file bytes and an HTTP upload tool. Otherwise, upload them in the admin.
Blocks publishing: a missing language, or no channel selected.
Recipients (recipients)
Recipients are organized in recipient groups. A group gathers the decision makers to contact, picked from your contact book as individual recipients or recipient lists, and the channel settings that apply to them. A campaign can have several groups, for example one per region or per institution, each with its own recipients, its own channels among the campaign's, and its own content samples.
What a group can configure:
- Channels — a subset of the campaign's channels, when this group should not offer them all.
- Language and writing instructions — a language that overrides the campaign's, and extra instructions for the AI, specific to this group.
- Form — either one destination page every supporter is sent to, with the label of the button that opens it, or each recipient's own contact form.
- Call — either the phone numbers of the group's recipients, or places found with a search, for local campaigns.
- Review — the Google Maps search that finds the places to review.
A geolocated campaign matches each supporter with the recipients of their area, from their address. It can only target recipient lists that are fully geolocated, and cannot send supporters to a single form page. A strictly geolocated campaign shows an alternative text to supporters outside every recipient's area instead of the closest recipients.
Reordering and duplicating groups is done in the admin.
Blocks publishing: no recipient group; a group without recipients reachable on one of its channels (an email address for email, a phone number for call, a handle or page for social channels); a form group sent to one page without its destination page or button label; a review group without its search.
Prompt (prompt)
The briefing the AI writes from. It is the single most important input for message quality.
- Campaign context — a factual, detailed briefing: who must be convinced, of what, why now, what the arguments are, and who your supporters are. Write it as you would brief a colleague joining the campaign.
- Campaign facts — verifiable facts, figures and their sources, which the AI can quote.
- Custom prompt — extra writing instructions: tone, things to avoid, structure.
The AI never invents facts: what is not in the briefing will not be in the messages.
Custom questions (custom-questions)
Optional questions asked to supporters before their message is written: where they live, why the cause matters to them, their profession. Their answers give every message a personal angle, which is what makes it persuasive. Questions are reusable across campaigns. They have no effect on the call channel, which uses your script as is.
Content samples (sample-content)
Example messages, written per recipient group and per channel, as a supporter would write them. They set the tone, the length and the angle of everything the AI will write for that group. Email samples have a subject and a body; every other channel has a single text; the call channel has a script that supporters read as is.
Blocks publishing: fewer than three validated samples for a channel the group offers, or no script for the call channel.
The Quality Review page lists what makes a good sample, with the exact thresholds the review checks.
Settings (settings)
- Recipients per supporter — how many recipients each supporter's email goes to. Social and form supporters pick one recipient; Twitter is capped at three.
- AI generation — when off, a content sample of the group is picked at random instead of a personalized message.
- Success page — a participation counter with automatic milestones, links to related campaigns, a custom message with a button that opens a page of your choice, and a petition supporters are invited to share (see Petitions).
- Donation — ask supporters for a donation on the success page, paid into your organization's Stripe account, with an optional intro of your own; see Donations. Through the API,
ask_for_donationanddonation_intro_text; the readiness report returnsdonation_settings_requireduntil the organization can take donations. - Landing page — skip the description page and open the campaign flow directly.
- Custom design — by default a campaign uses the organization's design: the page colors and custom CSS of the admin's Design settings. Switching it on saves immediately. On first enable, it copies the organization's values and opens the editor, with the same fields: an import from a website, the three page colors and custom CSS. Use Apply to save your edits; Cancel discards unsaved edits but leaves custom design on. A website import continues if you close the editor or refresh the page. When on, the campaign's four values replace the organization's, all at once; when off, they are kept but not used. Through the API,
use_custom_designwithcolor_main,color_buttons,color_backgroundandcustom_css. - Greetings — gendered per-recipient openings, used by the email and form channels.
- CRM — keep the inline switch to enable the organization's integration. When checked, Edit opens the campaign's CRM settings. It is available even when activation comes from the organization's default. Saving the dialog activates CRM locally and saves only these settings; your other unsaved campaign edits stay in the form. Cancel discards only the dialog's changes. Integrations themselves are configured in the admin.
By default, contacts go to the organization's lists, shown as the placeholder of the Destination lists field. To send this campaign's contacts elsewhere, without changing other campaigns or petitions, select one to five destinations: lists, groups or static lists depending on the provider, existing or new tags for Action Network. They replace all the organization's destinations for this campaign. Reset to organization defaults empties every field of the dialog, which restores inheritance once saved. Mailchimp keeps the organization's audience; its dialog only selects the manual contact fields to ask supporters.
These changes apply to future CRM submissions and do not move existing contacts. A visitor whose consent is already remembered joins the page's destinations the next time they act on it. Reconnecting or changing the integration clears its local destination overrides; review the settings before collecting new contacts.
Through the API or MCP, send a complete crm_configuration with connection copied from the current page response, destination_override (a list of {id, name} entries, or null to inherit), crm_contact_form_fields and provider_settings: the active CRM's page settings, an empty object for most providers and {"source_campaign_id": <id>} for Salesforce Account Engagement. capabilities (what the active CRM allows: how many destinations, whether a page may override them, the page settings it requires), organization_destinations and page_settings_complete are read-only. Saving this object also sets is_crm_specifically_enabled to true. The former top-level CRM field and source keys are no longer accepted. Use the admin picker when you do not know the destination IDs.
Newsletter consent is remembered on the visitor's device for one email address per organization: the last address that gave consent, with no address history. It applies across that organization's campaigns and petitions. The newsletter checkbox stays hidden while the current email matches that address, ignoring letter case and surrounding spaces. Entering a different address shows the checkbox again with your integration's default value and required setting. Older consent cookies that do not identify an email address are ignored, so those visitors are asked again. A personalized CRM link remembers an existing subscriber's consent only after the visitor accepts the proposed identity.
For a campaign, a matching remembered consent also hides the CRM contact fields. Visitors who opt in, or whose consent is remembered, are sent to the CRM each time they act; a contact who unsubscribed in your CRM since may be subscribed again, depending on the CRM. A draft sends nothing.
When Salesforce Account Engagement is enabled for a campaign, select a Salesforce source campaign in the CRM Edit dialog in Settings. The selection is required before saving Salesforce settings or publishing, including when Salesforce is enabled for all campaigns. New prospects are assigned to the selected Salesforce campaign; existing prospects keep their original source campaign. Existing Activoice campaigns need this selection before further signups can sync.
For Salesforce Account Engagement (Pardot), configure Custom fields in the integration settings. Each generic rule has a destination API name, Value source, Format, and update policy. Rules apply to every participant sent to Salesforce: those who tick the newsletter checkbox or whose consent is remembered. Participants who leave it unchecked are never sent. There are no presets or automatically added fields. Enter API names with or without the __c suffix; each destination can appear only once, with up to 53 rules.
Choose Fixed value to enter the text or checkbox value to send, or Activoice campaign slug to use the submitted campaign or petition slug without entering a fixed value. Choose Text or Checkbox group for the destination format; Pardot checkbox fields use Checkbox group even when they have only one predefined value. Format appears above Fixed value. A missing slug leaves the destination unchanged.
New rules default to Fixed value, Text, and Only if empty. Changing the source does not change the update policy. For a slug rule, choose Always to record the latest campaign; Only if empty preserves the first recorded slug. Neither option retains participation history.
To write terms acceptance or newsletter opt-in fields, create fixed-value rules with the appropriate checked value and format and choose Always. Existing dedicated mappings are converted into equivalent rules with their previous values, formats, and Always policy preserved.
Syncing does not clear Salesforce unsubscribe or do-not-email flags. New prospects receive Source Activoice and every rule value in a single write; existing prospects keep their original source, even when it is empty, and Only if empty rules preserve the values they already hold.
For Eurogroup for Animals, configure:
| Field API name | Value source | Fixed value | Format | Update policy |
|---|---|---|---|---|
Used_registration_form__c | Fixed value | Activoice | Text | Only if empty |
Member_of_Activoice__c | Fixed value | true | Checkbox group | Always |
Only if empty reads the matched prospect and fills a null, empty text, or empty checkbox-group value. Existing populated values are preserved. If the field cannot be read, the write fails instead of assuming it is empty. These rules apply to future submissions and do not backfill contacts. Reconnecting the same Salesforce account preserves the configuration; connecting a different account or disconnecting clears it.
Review and publish (review)
Two reports are read before publishing:
- The readiness report lists what blocks publishing, from the rules given on this page. Publishing is refused, and nothing is changed, while it has an error.
- The quality review scores the campaign against the checks described in Quality Review. It does not block publishing, but a low score means messages that feel templated, or written by the organization instead of its supporters.
Publishing changes the campaign state to active. Ending a campaign later is a state change too. An AI assistant publishes the campaign on its own as soon as the readiness report is clean and the review has run, and tells you it is live; ask it to put the campaign back to draft if you want to hold it.
Share
Once active, the campaign is served on its public URL, on your organization's custom domain when it has one. To put it on your own website, follow the Integration Guide. Colors and custom CSS are organization settings of your Activoice admin, shared by every campaign and by the embed, unless the campaign has its own custom design (see Settings); a page whose design differs from your website overrides them in the embed snippet, see Matching the host page design.