Skip to content

Apollo ​

Apollo plays two separate roles in iCallAgent, and it's worth knowing which one you want before you connect it:

You want to…Use Apollo asWhere you configure it
Call the people on an Apollo list, and keep calling new ones as they're addedA contact source for a folderContacts → + New group
Let an agent look up or write Apollo records mid-callAn agent toolThe agent's tools, after connecting

One connection covers both. The rest of this page is split the same way.

Connecting ​

Apollo's OAuth flow is partner-only: you register an app from Apollo's own Settings → Integrations → API → OAuth registration screen, and Apollo has to approve it before the flow will work. Only Apollo users with the Admin or Billing and Seat Manager role can authorise the connection.

  1. Open the dashboard.
  2. Left sidebar → Configure → Integrations.
  3. + Add Integration → Apollo.
  4. Approve the consent screen in Apollo.

The redirect URL registered on the iCallAgent side is:

https://api.icallagent.com/api/integrations/apollo/callback/

Access tokens last 30 days. iCallAgent refreshes them a few minutes before expiry, and because Apollo issues a new refresh token on every refresh and revokes the old one, the replacement is stored as part of the same operation. If a refresh ever fails — the grant was removed on the Apollo side, for instance — tools return a message asking you to reconnect rather than failing silently, and a folder syncing from Apollo shows the reason on its row.

Scopes ​

The scopes are fixed when you register the app in Apollo; iCallAgent requests exactly what your app was approved for rather than asking for a wider set, because requesting an unapproved scope fails the whole authorization. What you need depends on which role you're after:

ScopeNeeded for
read_user_profileAlways — Apollo adds it by default, and it's what labels the connection with your Apollo account email
tags_listListing your Apollo lists when creating a folder
contacts_searchSyncing a folder, and the agent tool's lookup_record
contact_write / contact_updateThe agent tool's create_record / update_record on contacts
account_read / account_writeThe same actions against accounts
opportunity_read / opportunity_writeThe same actions against deals

If a scope is missing, Apollo answers with a permission error and iCallAgent surfaces its text verbatim — the list picker will say so rather than showing an empty list.

Apollo as a contact source ​

A folder (a contact group) can be tied to one of your Apollo lists. iCallAgent then pulls that list on a schedule, files the contacts into the folder, and — if a campaign follows that folder — queues calls for the ones it hasn't called yet.

  1. Left sidebar → Configure → Contacts.
  2. + New group.
  3. Sync from → Apollo.
  4. Pick the Apollo list, optionally narrow it with a keyword, and choose how often it syncs: only when you press sync, hourly, or daily.
  5. Test this source runs the configuration once and reports what it found before you commit.

Curate the list in Apollo; the folder follows it.

What a sync actually does ​

BehaviourDetail
MatchingA record is matched on its Apollo id first, then on phone number — so a contact whose number changed upstream is updated, not duplicated, and one you'd already imported by hand isn't forked into a second row
Contacts with no phone numberSkipped, and counted. They can't be called, and importing them would inflate campaign totals with rows that always fail. The folder reports how many were left behind
Field updatesA blank value from Apollo never overwrites a filled local field
Hand-added contactsA sync only ever removes members it added itself, so anyone you dragged into the folder stays
Ceiling5,000 records per sync. Narrow the list in Apollo if it's larger — the preview warns you when you're over
Phone number chosenThe first of mobile, direct, corporate, home, other, then the phone_numbers array

Failures are recorded on the folder itself: the row shows Apollo's own message ("Apollo denied this request — the connected app may be missing a required scope") rather than sending you to a log.

Calling a synced folder ​

In the campaign wizard's Contacts step, switch from Pick contacts to Use a group and choose the folder. One checkbox decides what happens after the campaign starts:

  • Checked — contacts that join the folder later, including from the next Apollo sync, are queued into the running campaign. This is what makes the campaign dynamic.
  • Unchecked — the campaign calls the folder's members as they were when it launched.

Blacklisted contacts are left out at enrollment rather than queued and rejected at dial time. See Campaigns for the rest of the wizard.

Apollo as an agent tool ​

Attach Apollo to an agent and it can read and write Apollo records during a call.

FieldRequiredDescription
actionYeslookup_record (default), create_record, or update_record
object_typeYeslead, contact, account, or deal
lookup_fieldNoDefaults to email
instructionsNoNotes for the agent on when to use the tool

Apollo has no separate lead object, so lead and contact both map to Apollo contacts. account maps to accounts and deal to opportunities.

ActionWhat it doesArguments the agent supplies
lookup_recordSearches your Apollo recordsquery, email, or phone
create_recordCreates a contact, account, or dealname (required), email, phone, company
update_recordUpdates one recordid (required), plus any of name, email, phone

Two behaviours worth knowing:

  • Results are trimmed. Apollo records carry around a hundred fields; the tool returns a small projection (id, name, email, title, company, phone numbers) so the agent isn't fed a wall of JSON mid-call.
  • Deal lookup filters locally. Apollo's deal search takes no keyword filter, so iCallAgent pulls a page of opportunities and matches on the deal name itself. Contacts and accounts are filtered by Apollo.