Let's set up your campaign
📋
Add Your First Policy
Load your platform into the Policy Hub so volunteers have answers at every door
👥
Invite Your First Volunteer
Send a link to your team, they sign in and start logging immediately
🚪
Log Your First Door Contact
Head out and log your first knock, see how fast the dashboard updates
💳
Set Up Billing
14-day free trial, full access, no credit card needed
⚡ Election Day Mode
0
Voted ✓
0
Not Yet
0
Needs Ride
0
Doors Today
📍
Question 1 of 2
Have they voted today?
Question 2 of 2
Do they need a ride to the polls?
Recent Logs
Loading…
Campaign
?
⚡ Quick Log
Roads Housing Safety Taxes Transit Seniors Parks Schools Other
--°
Loading…
💧 --
💨 --
▼ Hourly
24-Hour Forecast
✅ Contact logged and saved!
Address & Volunteer
Door Status
Resident Information
Support Level
Key Issues, select all that apply
Housing Affordability Roads & Potholes Public Safety Transit & Bus Property Taxes Seniors Services Youth Programs Parks & Green Space Homelessness Local Business Environment Development/Zoning Schools Other
Notes, type or use voice 🎙️
Tap mic
--°
Loading weather…
Detecting location…
FEELS LIKE
--°
WIND
--
💧 Humidity: --
🌅 Sunrise: --
🌇 Sunset: --
👁️ Visibility: --
▼ Tap for hourly forecast
24-Hour Forecast, Plan Your Canvass
0
Total Contacts
0
Homes Visited
0
Support/Leaning
0
Undecided
0
Follow-ups
Top Issues
Door Outcomes
Strong Support
0
Leaning
0
Undecided
0
Not Supporting
0
All Submissions
0
Doors Knocked
0
Answered
0
Not Home
0
DND
0%
Answer Rate
By Door Outcome
By Volunteer
VolunteerDoorsAnsweredRate
🗺️

Map activates once your Google Maps API key is added in Settings.

Strong Support
Leaning
Undecided
Not Supporting
Not Home / DND
⚡ Quick Reference
0
Stops
0 km
Est. Distance
0 min
Est. Time
0
Unvisited
🗺️

Click Generate Route to create an optimized walking route for your volunteers based on logged addresses.

Google Maps API key required in Settings to display the route map.

✨ AI Campaign Strategist
Click "Generate Briefing" to get an AI-powered strategic analysis of your field data, top issues, support picture, and a specific recommendation for this week.
🤖 AI Conversation Coach
Generates personalized approach tips for undecided voters based on their logged concerns. Available after generating a briefing.
How Access Works

Team members log in at myturfrunner.com/login with their email or Google account. Invitations expire after 7 days. Each role controls what they can see and do.

0
Team Members
0
Admins
0
Volunteers
0
Pending Invites
Pending Invitations
0
Outstanding
0
Up Now
0
Total Requested
0
Damaged
0
Missing/Stolen
Sign Coverage Map
🪧

Add your Google Maps API key in Settings to see signs plotted on the map

By Poll Area
AreaOutstandingUpTotal
By Volunteer
VolunteerPlacedDamagedRetrieved
Election Day Stats
0
Confirmed Voted
0
Need Ride
Today's Rides Needed
No ride requests yet.
🗳️
Ready to Go?

GOTV mode gives your volunteers a stripped-down, easy-to-use interface, just two questions per door. Perfect for phones with small screens.

Runs full-screen. Press ✕ to exit back to the platform.

GOTV Log, All Contacts Today
No GOTV contacts logged yet.
1. Choose Your Segment
2. Write Your Message
0 / 160
Use {name} to personalize with the resident's first name
3. Preview & Send
Preview
⚠️ Only contacts with phone numbers logged will receive SMS. Estimated cost: ~$0.008 per message (Twilio).
SMS History
No SMS blasts sent yet.
0
Unique Addresses
0
Multi-Visit
0
Have Phone
0
Have Email
Upload Spreadsheet
📄
Drop your file here
Supports .csv and .xlsx / .xls files
or click to browse
Import Guidelines

Your file can have any column names, you'll map them to TurfRunner fields after upload.

Recognized Fields:
Address *
Required
First Name
Optional
Last Name
Optional
Phone
Optional
Email
Optional
Support Level
strong/lean/undecided/against
Door Status
Answered/Not Home/DND
Poll Area
e.g. 10-2
Notes
Optional
Volunteer
Optional
⚡ Duplicate detection: rows with the same address are flagged and you choose what to keep.
Import History
No imports yet. Upload a file above to get started.
Campaign Info
Comma separated. These become the filters on signs, contacts, turfs and GOTV.
What volunteers actually call each area. Shown alongside the code.
Integrations
Leave blank to use TurfRunner's shared map. Enter your own Google Maps key to bill map usage to your own Google account — applies to your whole team.
Door-Step Donations
Who is the candidate?
Their login, so "the candidate must attend" resolves to a real schedule. The name field above is just a label.
Have a code?
A trial code adds full access for a set number of days. It's added to whatever you have left, not instead of it.
Billing
Current plan: · Status:
Fundraising Goal
Sets the progress bar in the Fundraising tracker
🔔 Reminders & Follow-Ups
Controls the follow-up list on the dashboard and the nudges on the calendar. Nothing is emailed — these show up inside the app.
Win Condition Target
Sets the progress bar across dashboards and scoreboard
Data
Database entries: 0
0
Turfs Created
0
Assigned
0
Completed
0%
Overall Coverage
No turfs created yet. Click "Create Turf" to assign streets to volunteers.
Coverage By Volunteer
Coverage By Street
Priority Heatmap, Undecided Voter Concentration
Hot (4+ undecided)
Warm (2-3 undecided)
Lukewarm (1 undecided)
Covered (all support)
🎯 Win Condition Progress
Supporters identified vs. target needed to win
0%
0 supporters identified Target: - - to go
0
Upcoming
0
Confirmed Volunteers
0
Doors Targeted
No shifts scheduled. Create your first canvass shift!
How it works

These volunteers haven't logged a door in 5 or more days. Tap WhatsApp to send a personal nudge. One message at the right time brings most volunteers back.

All volunteers are active! No nudges needed.
📢 Team Broadcast

Send one message to your whole team via WhatsApp

🚨 Spike Alerts, Issues Rising Fast
Run a refresh to check for emerging issues.
📊 Issue Trend (Last 7 Days vs Prior)
🗺️ Opponent Activity Log
0
Opponent Signs
0
Resident Mentions
0
Streets Flagged
No opponent activity logged yet. Volunteers can flag signs and mentions from the field.
🎯
Click Generate Prep Card to get an AI briefing built from your team's field data.
Top issues, common objections, and suggested talking points.
0
Calls Today
0
Answered
0
Support Pledges
📋 Call List
No call list loaded yet. Load your imported contacts, or import a list first.
Next Contact
Script
Opening: "Hi, may I speak with [name]? My name is [your name] and I'm volunteering for [candidate]'s campaign for [office]."

If asked why: "We're reaching out to residents in your neighbourhood because [candidate] wants to hear what matters most to you before the October 26th election."

Key question: "Are there any issues in the ward that have been on your mind, like roads, housing, or safety?"

Closing: "Based on what you've told me, [candidate] cares about the same things. Can we count on your support on October 26th?"
Call Outcome
Today's Call Log
No calls logged yet. Start dialling!
$0
Total Raised
$0
Pledged
0
Donors
$0
Avg Donation
Progress to Goal
Set a goal in Settings 0%
No donations logged yet. Log your first donor!
Export Format
🇨🇦
Elections Canada
Municipal & Federal reporting
🇺🇸
FEC Format
US Federal Election Commission
📊
Generic CSV
Universal spreadsheet format
Canvassing Data

All door contacts, support levels, issues, volunteer activity, and follow-ups in the selected format.

Financial Data

Donor names, amounts, dates, and addresses in the format required by your election authority.

📅 Reporting Calendar
0
Circles Held
0
People In The Room
0
Commitments Made
0 kept · follow-through
⚡ Open Action Items
All caught up — no open action items.
Days to Election Day
Campaign Progress
0%
0 done 0 remaining
$0
Total Spent
Budget Remaining
0
Transactions
0
Receipts Attached
Campaign Spend Budget
Set in Settings
$0 spent 0%
Spending by Category
|
No expenses logged yet. Click "+ Log Expense" to get started.
Step 1 · Find your boundary file
Upload it

Accepts .geojson, .kml, .kmz and zipped shapefiles. Everything is read in your browser — the file is not uploaded anywhere until you approve the areas.

Why this list is separate from your contacts

A canvass contact is someone you spoke to once. An ally is someone whose endorsement travels — an imam, a business owner, a community organiser, the person everyone on the street already trusts. Twenty of these is worth more than two hundred cold doors.

This screen is visible to campaign managers only. Notes about real, named community figures should not be readable by every volunteer with a login.

0
Allies
0
Actively Supporting
0
In Conversation
0
Going Cold
Only meetings where this person is required — by role, as the candidate, or by name. Guest lists and canvass shifts are not on here.
How these work

Each code works once. A campaign owner enters it under Settings and gets the days added to whatever trial they have left. When it runs out they drop to the free Scout tier and keep all their data — nothing is deleted and nobody is locked out.

Codes can't be redeemed by anyone but the campaign owner, and this screen is the only place they're readable.

0
Unused
0
Trials Running
0
Ending in 3 Days
0
Lapsed, Not Paid
Generate a batch
All codes
Needs Attention

Circles do not fail in the room. They fail in the week afterwards.

⭕ Circle🕌 Community📋 Team ✅ Commitment due🚪 Shift🚩 Milestone🤝 Ally follow-up
On This Day
Ask me anything about your race, the incumbent's record, local issues, or strategy. I'll research and give you a direct answer.
Quick questions:
0
Total Posts
0
Drafts
0
Scheduled
0
Posted
|
No posts yet. Click "+ New Post" to plan your first piece of content.
🎉
Great Session!
Here's what you accomplished today
0
Doors
0
Supporters
0
Undecided
How it works