All topics
  1. Getting started
    1. Create your account
    2. Get started with the guided welcome
    3. Invite your team
    4. Keep your number and forward it to your agent
    5. Set up your first agent
    6. A tour of HiloVoice
    7. Get help
  2. Concepts
    1. What HiloVoice does
    2. The five kinds of agent
    3. Phone numbers and caller ID
    4. Campaigns and recipients
    5. Calls, leads and contacts
    6. Roles and permissions
  3. Building an agent
    1. How the builder works
    2. Describe the business
    3. Name the agent and give it a purpose
    4. Set your opening hours
    5. Handle each kind of caller
    6. Choose what the agent asks
    7. Give the agent answers
    8. Shape how a call sounds
    9. Give a Receptionist its number
    10. Write an outbound agent's opening
    11. Set a follow-up's goal
    12. Set when an outbound agent may call
    13. Give an outbound agent a caller ID
    14. Turn callers into leads
    15. Book appointments on a call
    16. Hand calls to a person
    17. Turn away callers you can't help
    18. Let the agent check your records
    19. Send messages after a call
    20. Review and go live
    21. Start a new agent from one you have
    22. Pause, archive or delete an agent
    23. Call new leads within seconds
  4. Agent playbooks
    1. Set up a receptionist for a clinic
    2. Confirm tomorrow's appointments
    3. Check the details you hold
    4. Ask for feedback after a visit
    5. Follow up on open quotes
  5. Testing and going live
    1. Test an agent with Try it
    2. Put a Receptionist on the web
    3. Check an agent before real calls reach it
    4. Your responsibilities on calls
  6. Campaigns
    1. How a campaign runs
    2. Create a campaign
    3. Import a campaign's recipients
    4. Set a campaign's calling hours and retries
    5. Monitor a running campaign
    6. Work the Needs a person queue
    7. Call a recipient again
    8. Read a follow-up's progress
  7. Day-to-day operations
    1. The Usage page
    2. Review your calls
    3. Follow up your leads
    4. Keep your contacts up to date
    5. Set up transfer destinations
    6. Put callers straight through to a person
    7. Block a number
    8. Keep up with notifications
  8. Integrations
    1. What you can connect
    2. Connect your own Twilio account
    3. Connect your calendar
    4. Send email from your own address
    5. Connect HubSpot
    6. Connect Salesforce
    7. Connect Slack
    8. Connect Zapier
    9. Send leads to your own system
    10. Add a lookup source
  9. Administration
    1. Change your organization's settings
    2. Manage members and roles
    3. Manage your phone numbers
    4. Plans, minutes and limits
    5. Make and revoke API keys
    6. Check who did what in the activity log
    7. Manage your own account
    8. Join the HiloVoice affiliate program
  10. Reference
    1. Glossary
    2. Campaign statuses
    3. Recipient statuses
    4. Follow-up dispositions
    5. Call statuses and outcomes
    6. Agent builder fields
    7. CSV columns
    8. Error messages
    9. Frequently asked questions

Import a campaign's recipients

For BuildersChecked against the app on October 1, 2026

The people a campaign calls come from a spreadsheet: one row per person, with a phone number in each. The other columns are what the agent is told about the person before it calls, such as their first name or the time of their appointment. You add the file on the campaign's Add people tab and say what each column is. HiloVoice then reads it row by row, and every row ends up either on the list or in a report that says why not.

Before you start

  • You're an Owner, Admin or Builder.
  • The campaign is a draft, scheduled or paused. A running campaign has no Add people tab: pause it first.
  • The agent knows which details it reads from the list. Each detail on its Details step (Questions on Feedback and Follow-ups) set to We already know it needs a column. See Choose what the agent asks.
  • The file is a CSV, XLSX or XLS, with the column names in its first row and no more than 50,000 rows. Your plan may allow fewer in one upload.

Warning: You're responsible for having permission to call everyone on your list. HiloVoice checks your own block list, not any national do-not-call registry: if one applies to you, check the file against it before you import it. See Your responsibilities on calls.

Steps

  1. Open the campaign and click Add people. Until you choose a file, the tab shows an example: the columns this agent needs, filled in for two made-up people.

    The Add people tab before a file is chosen: Choose a file, Download this example, and an example with the columns the agent needs, filled in for two made-up people.

  2. To start from that example, click Download this example and fill in people-example.csv. Its column names already match the agent's details. Only phone has to be filled in.

  3. Click Choose a file and pick your file. If a workbook has more than one sheet, choose the one with the people on it.

  4. HiloVoice says how many rows it found and lists your columns, each with a value from the file. Beside each column, check what it is: Phone number, First name, Last name, Email, Your reference / ID, Time zone, Something the agent can use or Ignore this column. One column, and only one, is the Phone number.

    A file's four columns, each with a value from it and what it is: Phone number, First name, Last name, and Something the agent can use, read as appointment_time; then Add 5 rows.

  5. For each column set to Something the agent can use, the box beside it holds the name the agent reads it under. A column named like one of the agent's details is matched for you; for any other, pick the detail's name from the suggestions in the box, such as appointment_time.

  6. Read the line under the list, if there is one: The agent also expects … — no column gives it, so it will be blank on the call. Map a column to that detail, or add the column to your file and choose the file again.

  7. Click Add … rows. HiloVoice reads the file (every row becomes a recipient or a line in the report), then opens People, with everyone it added marked Waiting.

To read the report, click Add people again. It says … of … rows from … added, and Rows not taken as written lists each row that wasn't taken as it was written, with why.

The report on a five-row file: 2 of 5 rows added, and Rows not taken as written opened, each row with its problem and why.

Columns for each kind of agent

The example on Add people is made from your agent, so it always shows the columns that agent reads. It starts with the person's own: phone, first_name, last_name and email. Then:

AgentIts own columns
ConfirmationsWhat it reads back to confirm: each We already know it detail on Details, such as appointment_time
Detail checksThe record it checks: each We already know it detail on Details, such as the address you hold
FeedbackOften none: it asks its questions on the call. Add a column for anything on Questions set to We already know it, such as the date of the visit
Follow-upsgoal, current_status and due_date, each optional, then anything on Questions set to We already know it

On a Follow-ups campaign, goal gives a person their own goal: Return the signed service agreement. Anyone without one is worked toward the goal on the agent's Goal step. current_status says where things stand (Agreement sent 9/12), and due_date when it's due.

Two more columns are worth having. Your reference / ID shows under the person's name on People, so you can match them to your own records. Time zone, such as America/Chicago, lets the campaign call each person on their own clock: see Set a campaign's calling hours and retries.

Tip: Write dates as 2026-10-06 09:30. The agent says them the way a person would, weekday and all: Tuesday, October 6, 2026 at 9:30 in the morning. Dates written your country's way work too, read in your organization's day and month order.

What a bad row looks like

Maple Street Dental's reminder calls read each patient's appointment time. This file, reminders.csv, has five rows of people, and (312) 555-0157 is on the practice's block list:

phone,first_name,last_name,appointment_time
(312) 555-0142,Ana,Ruiz,2026-10-06 09:30
,Tom,Becker,2026-10-06 10:00
555-0168,Lena,Ortiz,2026-10-06 11:15
312-555-0142,Ana,Ruiz,2026-10-06 09:30
(312) 555-0157,Raj,Mehta,2026-10-06 14:00

The report says 2 of 5 rows from reminders.csv added, and lists, counting the header as row 1:

RowProblemDetail
3No phone numberNo phone number.
4Not a phone number'555-0168' is not a phone number.
5Duplicate+13125550142 appears earlier in the file.
6On the block list+13125550157 is on the block list; it will not be called.

Lena's number, on row 4, has no area code. Row 5 is Ana again, written another way; the first row for her is kept. Raj, on row 6, is added but never called: he's on the list as Skipped. A row with a time zone HiloVoice doesn't know is added too, listed as Unknown time zone, and called on your business's clock.

A phone number can be written the local way, such as (312) 555-0142 or 312.555.0142; it's read as a number in your organization's country, set under Settings → Organization. Write a number from another country with a + and its country code. A number already on the campaign, from an earlier file, is a Duplicate too.

What happens next

  • People are called in the order of the file. Everyone on it is added to Contacts, or their contact is brought up to date from the file.
  • The block list is checked again before every call, so a number blocked after the import is skipped too.
  • You can add another file while the campaign is a draft, scheduled or paused. A number already on the campaign isn't added twice.
  • A row can't be taken off a campaign once it's added. Once the campaign is launched, Skip this person in a row's … menu stops someone being called.
  • To put someone on a campaign that's already running, such as a caller whose details didn't get finished, use Add to a follow-up campaign… on the Leads page, a lead, or a call.

If it does not work

You seeWhyWhat to do
Pick the column with the phone number., and Add … rows is greyed outNo column is set to Phone numberSet the column with the numbers to Phone number.
Variable names are lowercase letters, digits and underscores, starting with a letter.A name under Something the agent can use has a space, a capital or a symbol in itChange it, such as appointment_time.
"full_name" is a name HiloVoice fills in itself on every call. Call the "<column>" column something else. (or phone, first_name and the like), and Add … rows is greyed outHiloVoice fills that name in itself on every call, so a column can't use itGive the column another name, or set it to Ignore this column. Set a whole name to Full name (split into first and last).
Two columns are both called "<name>". Give one of them another name.Two columns under Something the agent can use have the same nameRename one of them.
The file has no header row., Every column in the header row needs a name. or Two columns in the header row have the same name.The first row isn't a set of different column namesPut one name over each column in the first row.
The file has a header row and nothing under it.There are no people in itChoose the file with the people in it.
That file has more than 50,000 rows. Imports are limited to 50,000 rows for now.The file is too bigSplit it, and add the parts one after another.
Your plan takes up to … contacts in one upload, and this file has …. Split it into smaller files, or choose a bigger plan under Settings → Billing.Your plan limits one uploadSplit the file, or an owner changes the plan.
The import didn't go through, with the reason, and Try againThe file couldn't be read as mappedPut right what the reason says, click Try again, and choose the file again.