How to prepare an outbound calling list that is ready to work
Published
Ryan Erkal
Founder, Redialler

To prepare an outbound calling list, define the session's audience and goal, validate every phone and record, remove duplicates and do-not-call entries, resolve timezone and owner rules, then test a small sample before loading the queue. A clean list is an eligibility decision with evidence. It is not just a spreadsheet sorted by name.
1. Define the session goal and eligible audience
Write the session goal in operational terms. For example: call existing US prospects who have an assigned owner and a valid work number, and record one outcome for each attempt. Then define exclusions before you import anything: customers, open opportunities, recent conversations, opted-out people, records outside the owner's territory, and records with no usable number.
An eligible audience is a rule, not a feeling. Name the source list, the record type, the owner rule, the country, the data freshness limit and the next action expected from a rep. Keep the source snapshot or query so you can explain why a record was included on a particular day.
Attio can query Person records with filters, sorting, limits and offsets. Use those controls to build a repeatable source, then apply calling-specific checks before creating a queue. A returned record is not automatically a callable record.
2. Validate phone format, country and duplicates
Normalise a phone before you compare it. E.164 is the practical reference form: a plus sign, country code and national number, with no display punctuation. Redialler's current phone path validates US numbers and accepts ten digits or +1 followed by ten digits before producing the dialling form. A number that parses as a string is not necessarily a valid or callable number.
Deduplicate on the normalised phone and the record identity. If two rows share a phone, merge their stop signals first and preserve any opt-out or suppression from either row. Then keep one canonical row and route the other to a review bucket. If one person has several legitimate numbers, preserve the selected number and its label rather than silently replacing it. A duplicate name with different phones can be two different people.
Keep three counts: input rows, rows with a valid number, and unique record-number pairs. This makes the loss visible. Do not delete the excluded rows from your source without an audit reason. Put them in mutually exclusive buckets so the final arithmetic can be reconciled.
3. Apply opt-outs, calling windows and owner rules
Apply suppression before queue creation. Check the team's entity-specific do-not-call list, any durable number suppression, and the current status of the record. A rep's note that says do not call is useful evidence, but your queue builder needs a machine-readable exclusion that every calling mode checks.
Resolve a reliable prospect timezone before enforcing a local calling window. Redialler's product policy uses 8 a.m. to 9 p.m. in the prospect's local time when enforcement is enabled and the timezone is known. Unknown or ambiguous US area codes remain unresolved rather than receiving an invented timezone. Holidays alone do not block calls in the current product.
The FTC says covered telemarketing calls to a person's home should not be made outside 8 a.m. to 9 p.m. local time without prior consent. It also requires entity-specific do-not-call procedures and says state and FCC requirements can apply. Treat this article as an operational checklist, not a complete legal review.
4. Attach the exact CRM record and useful context
A queue item should point to the exact CRM object and record, not just a name and a phone. Preserve the Attio Person record ID and, for a list-based workflow, the list ID and entry ID. Check the selected number against the Person record before loading the item. If identity is uncertain, route the row to review.
Carry only context that helps the call. Useful fields include the person's name, company, role, owner, source, last outcome, next action, reply status and a short approved note. Avoid copying full private email threads or sensitive data into a calling queue when a link or short summary is enough.
Attio's list-entry model is separate from its Person object. A list entry can hold campaign-specific values while the Person carries shared contact data. Keep both references so an outcome can update the intended place without overwriting unrelated list context.
5. Split work by timezone and next action
Create separate work buckets for now, later, unresolved timezone, callback due and excluded. A bucket is a routing decision. It should never erase the original exclusion reason. Keep callbacks and other explicit commitments ahead of a generic prospecting queue only when the owner and due time are clear.
Use local time labels alongside the stored instant. Assign each callable row to one owner or a defined round-robin rule. If the owner is missing, hold the row for assignment rather than making a shared queue that two reps can claim at once.
In a 100-record fictional import, put seven exact duplicate phone rows in one bucket, nine rows with no valid US phone in another, six records on the entity-specific DNC list in a third, and eight outside the agreed owner or audience rule in a fourth. Because the buckets do not overlap, 100 minus 7 minus 9 minus 6 minus 8 leaves 70 eligible rows. If 42 are in the current local-time window and 28 are later, the split still totals 70. These are planning numbers, not performance data.
6. Run a small acceptance sample and reconcile results
Before a full session, choose a small sample from each important bucket: one valid callable record, one duplicate, one missing number, one suppressed record, one unresolved timezone and one callback. Verify the expected queue decision against the source record. Do not place a call to validate an exclusion.
For the callable sample, check the exact record, selected number, owner, local-time label, caller-ID policy and outcome path. Save one controlled outcome, refresh the CRM context and confirm the writeback is attached to the same record. Repeat the save or sync request and check that it does not create a duplicate.
Reconcile input plus every exclusion bucket against eligible output. Investigate any row that appears in two buckets or disappears without a reason. Once the sample passes, preserve the source snapshot, rule version and review time with the session. The linked guide about calling contacts in Attio covers the record-to-outcome stage that follows a prepared list.
Explore Redialler
Sources and review
Reviewed 2026-09-08. Product details and provider policies can change.
- People (checked 2026-09-08)
- List person records (checked 2026-09-08)
- Get a list entry (checked 2026-09-08)
- Create a task (checked 2026-09-08)
- Complying with the Telemarketing Sales Rule (checked 2026-09-08)
- Integrations troubleshooting guide (checked 2026-09-08)
- Calling (checked 2026-09-08)