TL;DR — An activity is one campaign push — a canvass, phone bank, text blast, or GOTV drive. It works through a list of people — or, for a field canvass, a poll, an area you draw on the map — and runs a survey. A field activity can target a poll instead of a list, reaching everyone inside its boundary.

What it is

An activity is one campaign push. It’s the how we reach them — the effort that puts volunteers in front of people and records what they hear.

An activity ties the other two concepts together: it works through a list of people — or, for a field canvass, a poll (an area on the map) — and runs a survey (the questions).

graph LR
    L[List<br/><i>who</i>] --> A[Activity]
    S[Survey<br/><i>what we ask</i>] --> A
    A --> R[Answers recorded]

    style L fill:#e1f5ff,stroke:#0066cc,stroke-width:3px
    style S fill:#e1f5ff,stroke:#0066cc,stroke-width:3px
    style A fill:#fff4e6,stroke:#ff9800,stroke-width:3px
    style R fill:#f5f5f5,stroke:#666,stroke-width:2px

The four kinds

When you create an activity you choose how you’ll make contact:

  • Field — door-to-door canvassing, with a map and walk lists.
  • Call — phone banking; volunteers dial people from the list.
  • Text — SMS outreach; messages go out to the list.
  • GOTVGet Out The Vote; turnout-day tracking. GOTV focuses on whether people have voted, so it doesn’t use a survey.

Field and Call activities run a survey; Text uses a message template; GOTV tracks voting status only.

Field activities and Polls

A poll is a named grouping of the people it covers — either a boundary you draw on the map, or a set defined by polling-division numbers in your import. It’s a standalone concept you build once and reuse, not a slice of one activity.

For a Field activity, you can use a poll as the data source instead of a list. Attach a single poll and CampaignCTRL pulls in everyone inside its boundary as contacts — you don’t pick people one by one. (Call, Text, and GOTV activities use a list instead.)

graph LR
    P[Poll<br/><i>map area or import</i>] --> A[Field Activity]
    L[List<br/><i>hand-picked people</i>] --> A
    A --> C[Contacts]

    style P fill:#e1f5ff,stroke:#0066cc,stroke-width:3px
    style L fill:#e1f5ff,stroke:#0066cc,stroke-width:3px
    style A fill:#fff4e6,stroke:#ff9800,stroke-width:3px
    style C fill:#f5f5f5,stroke:#666,stroke-width:2px

You build polls a couple of ways — draw them by hand on the Map, or import them from a file. See Polls for the full picture.

When you create an activity you first choose its type, then give it a title and pick its data source — a list of people, or, for a field activity, a poll you’ve drawn on the map.

The Add Activity form showing the four activity types — Field, Call, Text, GOTV — and the list selector
Creating an activity: pick a type — Field, Call, Text, or GOTV — then point it at a list.

An activity is a snapshot

When you create an activity, CampaignCTRL takes a snapshot of its targets at that moment — the people on the list, or the addresses inside a poll’s boundary. The activity works from that snapshot, so later changes to the source don’t flow into an activity that already exists.

  • Add people to a list after the activity is created, and the activity keeps its original contacts. If the list had 10 people when you started the activity, the activity stays at 10 contacts even after you grow the list — the new people aren’t pulled in.
  • Redraw a poll’s boundary so it covers more (or fewer) addresses, and the activity keeps the addresses it began with. Changing the boundary later doesn’t add or remove contacts from the activity.

If you need the newer people or addresses included, create a new activity (or a new poll) so it captures a fresh snapshot of the current list or boundary.

Terms

  • Activity — one campaign push.
  • Field / Call / Text / GOTV — the way you make contact.
  • Poll — a named boundary that groups everyone whose address falls inside it; attach one to a field activity to target them all. See Polls.
  • Snapshot — the fixed set of contacts or addresses an activity captures when it’s created; later changes to the source list or poll boundary don’t change it.