# Apollo (/integrations/apollo)





{/* MANUAL-CONTENT-START:intro */}

Use [Apollo.io](https://apollo.io/) in Sim to search and enrich people and companies, manage CRM contacts and accounts, add contacts to sequences, and create follow-up tasks. Single-record and bulk enrichment operations are documented below.

{/* MANUAL-CONTENT-END */}

## Use the block [#usage-instructions]

Search for people and companies, enrich contact data, manage your CRM contacts and accounts, add contacts to sequences, and create tasks.

## Actions [#actions]

### Apollo People Search [#apollo-people-search]

Search Apollo's database for people using demographic filters

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `person_titles` | array | No | Job titles to search for (e.g., \["CEO", "VP of Sales"]) |
  | `include_similar_titles` | boolean | No | Whether to return people with job titles similar to person\_titles |
  | `person_locations` | array | No | Locations to search in (e.g., \["San Francisco, CA", "New York, NY"]) |
  | `person_seniorities` | array | No | Seniority levels (one of: owner, founder, c\_suite, partner, vp, head, director, manager, senior, entry, intern) |
  | `organization_ids` | array | No | Apollo organization IDs to filter by (e.g., \["5e66b6381e05b4008c8331b8"]) |
  | `organization_names` | array | No | Company names to search within (legacy filter) |
  | `organization_locations` | array | No | Headquarters locations of the people's current employer (e.g., \['texas', 'tokyo', 'spain']) |
  | `q_organization_domains_list` | array | No | Employer domain names (e.g., \["apollo.io", "microsoft.com"]) — up to 1,000, no [www](http://www). or @ |
  | `organization_num_employees_ranges` | array | No | Employee count ranges for the person's current employer. Each entry is "min,max" (e.g., \["1,10", "250,500", "10000,20000"]) |
  | `contact_email_status` | array | No | Email statuses to filter by: "verified", "unverified", "likely to engage", "unavailable" |
  | `q_keywords` | string | No | Keywords to search for |
  | `page` | number | No | Page number for pagination, default 1 (e.g., 1, 2, 3) |
  | `per_page` | number | No | Results per page, default 25, max 100 (e.g., 25, 50, 100) |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `people` | json | Array of people matching the search criteria |
  | `page` | number | Current page number |
  | `per_page` | number | Results per page |
  | `total_entries` | number | Total matching entries |
</ReferenceDetails>

### Apollo People Enrichment [#apollo-people-enrichment]

Enrich data for a single person using Apollo

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `first_name` | string | No | First name of the person |
  | `last_name` | string | No | Last name of the person |
  | `name` | string | No | Full name of the person (alternative to first\_name/last\_name) |
  | `id` | string | No | Apollo ID for the person |
  | `hashed_email` | string | No | MD5 or SHA-256 hashed email |
  | `email` | string | No | Email address of the person |
  | `organization_name` | string | No | Company name where the person works |
  | `domain` | string | No | Company domain (e.g., "apollo.io", "acme.com") |
  | `linkedin_url` | string | No | LinkedIn profile URL |
  | `reveal_personal_emails` | boolean | No | Reveal personal email addresses (uses credits) |
  | `reveal_phone_number` | boolean | No | Reveal phone numbers (uses credits, requires webhook\_url) |
  | `webhook_url` | string | No | Webhook URL for async phone number delivery (required when reveal\_phone\_number is true) |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `person` | json | Enriched person data from Apollo |
  | `enriched` | boolean | Whether the person was successfully enriched |
</ReferenceDetails>

### Apollo Bulk People Enrichment [#apollo-bulk-people-enrichment]

Enrich data for up to 10 people at once using Apollo

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `people` | array | Yes | Array of people to enrich (max 10) |
  | `reveal_personal_emails` | boolean | No | Reveal personal email addresses (uses credits) |
  | `reveal_phone_number` | boolean | No | Reveal phone numbers (uses credits, requires webhook\_url) |
  | `webhook_url` | string | No | Webhook URL for async phone number delivery (required when reveal\_phone\_number is true) |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `matches` | json | Array of enriched people (null entries indicate no match) |
  | `total_requested_enrichments` | number | Total number of records submitted for enrichment |
  | `unique_enriched_records` | number | Number of records successfully enriched |
  | `missing_records` | number | Number of records that could not be enriched |
  | `credits_consumed` | number | Number of Apollo credits consumed by this request |
</ReferenceDetails>

### Apollo Organization Search [#apollo-organization-search]

Search Apollo's database for companies using filters

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `organization_locations` | array | No | Company HQ locations (cities, US states, or countries) |
  | `organization_not_locations` | array | No | Exclude companies whose HQ is in these locations |
  | `organization_num_employees_ranges` | array | No | Employee count ranges as "min,max" strings (e.g., \["1,10", "250,500", "10000,20000"]) |
  | `q_organization_keyword_tags` | array | No | Industry or keyword tags |
  | `q_organization_name` | string | No | Organization name to search for (e.g., "Acme", "TechCorp") |
  | `organization_ids` | array | No | Apollo organization IDs to include (e.g., \["5e66b6381e05b4008c8331b8"]) |
  | `q_organization_domains_list` | array | No | Domain names to filter by (no [www](http://www). or @, up to 1,000) |
  | `page` | number | No | Page number for pagination (e.g., 1, 2, 3) |
  | `per_page` | number | No | Results per page, max 100 (e.g., 25, 50, 100) |

  #### Output [#output-3]

  | Parameter | Type | Description |
  | - | - | - |
  | `organizations` | json | Array of organizations matching the search criteria |
  | `page` | number | Current page number |
  | `per_page` | number | Results per page |
  | `total_entries` | number | Total matching entries |
</ReferenceDetails>

### Apollo Organization Enrichment [#apollo-organization-enrichment]

Enrich data for a single organization using Apollo

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `domain` | string | Yes | Company domain (e.g., "apollo.io", "acme.com") |

  #### Output [#output-4]

  | Parameter | Type | Description |
  | - | - | - |
  | `organization` | json | Enriched organization data from Apollo |
  | `enriched` | boolean | Whether the organization was successfully enriched |
</ReferenceDetails>

### Apollo Bulk Organization Enrichment [#apollo-bulk-organization-enrichment]

Enrich data for up to 10 organizations at once using Apollo

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `domains` | array | Yes | Array of company domains to enrich (max 10, no [www](http://www). or @, e.g., \["apollo.io", "stripe.com"]) |

  #### Output [#output-5]

  | Parameter | Type | Description |
  | - | - | - |
  | `organizations` | json | Array of enriched organization data |
  | `total` | number | Total number of domains requested |
  | `enriched` | number | Number of unique enriched records |
  | `missing_records` | number | Number of domains that could not be enriched |
  | `unique_domains` | number | Number of unique domains processed |
</ReferenceDetails>

### Apollo Create Contact [#apollo-create-contact]

Create a new contact in your Apollo database

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `first_name` | string | Yes | First name of the contact |
  | `last_name` | string | Yes | Last name of the contact |
  | `email` | string | No | Email address of the contact |
  | `title` | string | No | Job title (e.g., "VP of Sales", "Software Engineer") |
  | `account_id` | string | No | Apollo account ID to associate with (e.g., "acc\_abc123") |
  | `owner_id` | string | No | User ID of the contact owner (accepted by Apollo but not officially documented for POST /contacts) |
  | `organization_name` | string | No | Name of the contact's employer (e.g., "Apollo") |
  | `website_url` | string | No | Corporate website URL (e.g., "[https://www.apollo.io/](https://www.apollo.io/)") |
  | `label_names` | array | No | Lists/labels to add the contact to (e.g., \["Prospects"]) |
  | `contact_stage_id` | string | No | Apollo ID for the contact stage |
  | `present_raw_address` | string | No | Personal location for the contact (e.g., "Atlanta, United States") |
  | `direct_phone` | string | No | Primary phone number |
  | `corporate_phone` | string | No | Work/office phone number |
  | `mobile_phone` | string | No | Mobile phone number |
  | `home_phone` | string | No | Home phone number |
  | `other_phone` | string | No | Alternative phone number |
  | `typed_custom_fields` | json | No | Custom field values keyed by custom field ID |
  | `run_dedupe` | boolean | No | When true, Apollo deduplicates against existing contacts |

  #### Output [#output-6]

  | Parameter | Type | Description |
  | - | - | - |
  | `contact` | json | Created contact data from Apollo |
  | `created` | boolean | Whether the contact was successfully created |
</ReferenceDetails>

### Apollo Update Contact [#apollo-update-contact]

Update an existing contact in your Apollo database

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `contact_id` | string | Yes | ID of the contact to update (e.g., "con\_abc123") |
  | `first_name` | string | No | First name of the contact |
  | `last_name` | string | No | Last name of the contact |
  | `email` | string | No | Email address |
  | `title` | string | No | Job title (e.g., "VP of Sales", "Software Engineer") |
  | `account_id` | string | No | Apollo account ID (e.g., "acc\_abc123") |
  | `owner_id` | string | No | User ID of the contact owner (accepted by Apollo but not officially documented for PATCH /contacts/\{id}) |
  | `organization_name` | string | No | Name of the contact's employer (e.g., "Apollo") |
  | `website_url` | string | No | Corporate website URL (e.g., "[https://www.apollo.io/](https://www.apollo.io/)") |
  | `label_names` | array | No | Lists/labels to add the contact to (e.g., \["Prospects"]) |
  | `contact_stage_id` | string | No | Apollo ID for the contact stage |
  | `present_raw_address` | string | No | Personal location for the contact (e.g., "Atlanta, United States") |
  | `direct_phone` | string | No | Primary phone number |
  | `corporate_phone` | string | No | Work/office phone number |
  | `mobile_phone` | string | No | Mobile phone number |
  | `home_phone` | string | No | Home phone number |
  | `other_phone` | string | No | Alternative phone number |
  | `typed_custom_fields` | json | No | Custom field values keyed by custom field ID |

  #### Output [#output-7]

  | Parameter | Type | Description |
  | - | - | - |
  | `contact` | json | Updated contact data from Apollo |
  | `updated` | boolean | Whether the contact was successfully updated |
</ReferenceDetails>

### Apollo Search Contacts [#apollo-search-contacts]

Search your team's contacts in Apollo

<ReferenceDetails>
  #### Input [#input-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `q_keywords` | string | No | Keywords to search for |
  | `contact_stage_ids` | array | No | Filter by contact stage IDs |
  | `contact_label_ids` | array | No | Filter by Apollo label IDs (lists) |
  | `sort_by_field` | string | No | Sort field: contact\_last\_activity\_date, contact\_email\_last\_opened\_at, contact\_email\_last\_clicked\_at, contact\_created\_at, or contact\_updated\_at |
  | `sort_ascending` | boolean | No | When true, sort ascending. Must be used together with sort\_by\_field |
  | `page` | number | No | Page number for pagination (e.g., 1, 2, 3) |
  | `per_page` | number | No | Results per page, max 100 (e.g., 25, 50, 100) |

  #### Output [#output-8]

  | Parameter | Type | Description |
  | - | - | - |
  | `contacts` | json | Array of contacts matching the search criteria |
  | `pagination` | json | Pagination information |
</ReferenceDetails>

### Apollo Bulk Create Contacts [#apollo-bulk-create-contacts]

Create up to 100 contacts at once in your Apollo database. Supports deduplication to prevent creating duplicate contacts. Master key required.

<ReferenceDetails>
  #### Input [#input-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `contacts` | array | Yes | Array of contacts to create (max 100). Each contact may include first\_name, last\_name, email, title, organization\_name, account\_id, owner\_id, contact\_stage\_id, linkedin\_url, phone (single string) or phone\_numbers (array of \{raw\_number, position}), contact\_emails, typed\_custom\_fields, and CRM IDs (salesforce\_contact\_id, hubspot\_id, team\_id) for cross-system matching |
  | `append_label_names` | array | No | Label names to add to all contacts in this request (e.g., \["Hot Lead"]) |
  | `run_dedupe` | boolean | No | Enable deduplication to prevent creating duplicate contacts. When true, existing contacts are returned without modification |

  #### Output [#output-9]

  | Parameter | Type | Description |
  | - | - | - |
  | `created_contacts` | json | Array of newly created contacts |
  | `existing_contacts` | json | Array of existing contacts (when deduplication is enabled) |
  | `total_submitted` | number | Total number of contacts submitted |
  | `created` | number | Number of contacts successfully created |
  | `existing` | number | Number of existing contacts found |
</ReferenceDetails>

### Apollo Bulk Update Contacts [#apollo-bulk-update-contacts]

Update up to 100 existing contacts at once in your Apollo database. Each contact must include an id field. Master key required.

<ReferenceDetails>
  #### Input [#input-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `contact_ids` | array | No | Array of contact IDs to update. Must be paired with an object-form contact\_attributes specifying the fields to apply uniformly to all listed contacts. |
  | `contact_attributes` | json | No | Required. Either an array of per-contact updates (each with id) — used standalone — or a single object of attributes to apply to all contact\_ids. Supported fields: owner\_id, email, organization\_name, title, first\_name, last\_name, account\_id, present\_raw\_address, linkedin\_url, typed\_custom\_fields |
  | `async` | boolean | No | Force asynchronous processing. Automatically enabled for >100 contacts |

  #### Output [#output-10]

  | Parameter | Type | Description |
  | - | - | - |
  | `contacts` | json | Updated contacts (synchronous response, ≤100 contacts) |
  | `entity_progress_job` | json | Async job descriptor (>100 contacts or async=true): \{id, status, ...} |
  | `job_id` | string | Async job ID extracted from entity\_progress\_job |
  | `message` | string | Optional confirmation message from Apollo |
</ReferenceDetails>

### Apollo Create Account [#apollo-create-account]

Create a new account (company) in your Apollo database

<ReferenceDetails>
  #### Input [#input-11]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `name` | string | Yes | Company name (e.g., "Acme Corporation") |
  | `domain` | string | No | Company domain without [www](http://www). prefix (e.g., "acme.com") |
  | `phone` | string | No | Primary phone number for the account |
  | `owner_id` | string | No | Apollo user ID of the account owner |
  | `account_stage_id` | string | No | Apollo ID for the account stage to assign this account to |
  | `raw_address` | string | No | Corporate location (e.g., "San Francisco, CA, USA") |
  | `typed_custom_fields` | json | No | Custom field values as \{ custom\_field\_id: value } map |

  #### Output [#output-11]

  | Parameter | Type | Description |
  | - | - | - |
  | `account` | json | Created account data from Apollo |
  | `created` | boolean | Whether the account was successfully created |
</ReferenceDetails>

### Apollo Update Account [#apollo-update-account]

Update an existing account in your Apollo database

<ReferenceDetails>
  #### Input [#input-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `account_id` | string | Yes | ID of the account to update (e.g., "acc\_abc123") |
  | `name` | string | No | Company name (e.g., "Acme Corporation") |
  | `domain` | string | No | Company domain (e.g., "acme.com") |
  | `phone` | string | No | Company phone number |
  | `owner_id` | string | No | Apollo user ID of the account owner |
  | `account_stage_id` | string | No | Apollo ID for the account stage to assign this account to |
  | `raw_address` | string | No | Corporate location (e.g., "San Francisco, CA, USA") |
  | `typed_custom_fields` | json | No | Custom field values as \{ custom\_field\_id: value } map |

  #### Output [#output-12]

  | Parameter | Type | Description |
  | - | - | - |
  | `account` | json | Updated account data from Apollo |
  | `updated` | boolean | Whether the account was successfully updated |
</ReferenceDetails>

### Apollo Search Accounts [#apollo-search-accounts]

Search your team's accounts in Apollo. Display limit: 50,000 records (100 records per page, 500 pages max). Use filters to narrow results. Master key required.

<ReferenceDetails>
  #### Input [#input-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `q_organization_name` | string | No | Filter accounts by organization name (partial-match search) |
  | `account_stage_ids` | array | No | Filter by account stage IDs |
  | `account_label_ids` | array | No | Filter by account label IDs |
  | `sort_by_field` | string | No | Sort field: "account\_last\_activity\_date", "account\_created\_at", or "account\_updated\_at" |
  | `sort_ascending` | boolean | No | Sort ascending when true. Defaults to descending. |
  | `page` | number | No | Page number for pagination (e.g., 1, 2, 3) |
  | `per_page` | number | No | Results per page, max 100 (e.g., 25, 50, 100) |

  #### Output [#output-13]

  | Parameter | Type | Description |
  | - | - | - |
  | `accounts` | json | Array of accounts matching the search criteria |
  | `pagination` | json | Pagination information |
</ReferenceDetails>

### Apollo Bulk Create Accounts [#apollo-bulk-create-accounts]

Create up to 100 accounts at once in your Apollo database. Set run\_dedupe=true to deduplicate by domain, organization\_id, and name. Master key required.

<ReferenceDetails>
  #### Input [#input-14]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `accounts` | array | Yes | Array of accounts to create (max 100). Each account should include a name, and may optionally include domain, phone, phone\_status\_cd, raw\_address, owner\_id, linkedin\_url, facebook\_url, twitter\_url, salesforce\_id, and hubspot\_id. |
  | `append_label_names` | array | No | Array of label names to add to ALL accounts in this request |
  | `run_dedupe` | boolean | No | When true, performs aggressive deduplication by domain, organization\_id, and name (defaults to false) |

  #### Output [#output-14]

  | Parameter | Type | Description |
  | - | - | - |
  | `created_accounts` | json | Array of newly created accounts |
  | `existing_accounts` | json | Array of existing accounts returned by Apollo (when duplicates are detected) |
  | `failed_accounts` | json | Array of accounts that failed to be created, with reasons for failure |
  | `total_submitted` | number | Total number of accounts in the response (created + existing + failed) |
  | `created` | number | Number of accounts successfully created |
  | `existing` | number | Number of existing accounts found |
  | `failed` | number | Number of accounts that failed to be created |
</ReferenceDetails>

### Apollo Bulk Update Accounts [#apollo-bulk-update-accounts]

Update up to 1000 existing accounts at once in your Apollo database (higher limit than contacts!). Each account must include an id field. Master key required.

<ReferenceDetails>
  #### Input [#input-15]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `account_ids` | array | No | Array of account IDs to update with the same values (max 1000). Use with name/owner\_id for uniform updates. Use either this OR account\_attributes. |
  | `name` | string | No | When using account\_ids, apply this name to all accounts |
  | `owner_id` | string | No | When using account\_ids, apply this owner to all accounts |
  | `account_stage_id` | string | No | When using account\_ids, apply this account stage to all accounts |
  | `account_attributes` | json | No | Array of account objects with individual updates (each must include id). Example: \[\{"id": "acc1", "name": "Acme", "owner\_id": "u1", "account\_stage\_id": "s1", "typed\_custom\_fields": \{"field\_id": "value"}}] |
  | `async` | boolean | No | When true, processes the update asynchronously. Only supported when using account\_ids; returns 422 if used with account\_attributes. |

  #### Output [#output-15]

  | Parameter | Type | Description |
  | - | - | - |
  | `accounts` | json | Updated accounts (synchronous response): \[\{id, account\_stage\_id, ...}] |
  | `account_ids` | json | IDs of accounts that were updated |
  | `entity_progress_job` | json | Async job descriptor (when async=true is passed with account\_ids) |
  | `job_id` | string | Async job ID extracted from entity\_progress\_job |
  | `message` | string | Optional confirmation message from Apollo |
</ReferenceDetails>

### Apollo Create Opportunity [#apollo-create-opportunity]

Create a new deal for an account in your Apollo database (master key required)

<ReferenceDetails>
  #### Input [#input-16]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `name` | string | Yes | Name of the opportunity/deal (e.g., "Enterprise License - Q1") |
  | `account_id` | string | No | ID of the account this opportunity belongs to (e.g., "acc\_abc123") |
  | `amount` | string | No | Monetary value as a plain number string with no commas or currency symbols |
  | `opportunity_stage_id` | string | No | ID of the opportunity stage |
  | `owner_id` | string | No | User ID of the opportunity owner |
  | `closed_date` | string | No | Expected close date in YYYY-MM-DD format |
  | `typed_custom_fields` | json | No | Custom field values as \{ custom\_field\_id: value } map |

  #### Output [#output-16]

  | Parameter | Type | Description |
  | - | - | - |
  | `opportunity` | json | Created opportunity data from Apollo |
  | `created` | boolean | Whether the opportunity was successfully created |
</ReferenceDetails>

### Apollo Search Opportunities [#apollo-search-opportunities]

Search and list all deals/opportunities in your team's Apollo account

<ReferenceDetails>
  #### Input [#input-17]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `sort_by_field` | string | No | Sort field: "amount", "is\_closed", or "is\_won" |
  | `page` | number | No | Page number for pagination (e.g., 1, 2, 3) |
  | `per_page` | number | No | Results per page, max 100 (e.g., 25, 50, 100) |

  #### Output [#output-17]

  | Parameter | Type | Description |
  | - | - | - |
  | `opportunities` | json | Array of opportunities matching the search criteria |
  | `page` | number | Current page number |
  | `per_page` | number | Results per page |
  | `total_entries` | number | Total matching entries |
</ReferenceDetails>

### Apollo Get Opportunity [#apollo-get-opportunity]

Retrieve complete details of a specific deal/opportunity by ID

<ReferenceDetails>
  #### Input [#input-18]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `opportunity_id` | string | Yes | ID of the opportunity to retrieve (e.g., "opp\_abc123") |

  #### Output [#output-18]

  | Parameter | Type | Description |
  | - | - | - |
  | `opportunity` | json | Complete opportunity data from Apollo |
  | `found` | boolean | Whether the opportunity was found |
</ReferenceDetails>

### Apollo Update Opportunity [#apollo-update-opportunity]

Update an existing deal/opportunity in your Apollo database

<ReferenceDetails>
  #### Input [#input-19]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key |
  | `opportunity_id` | string | Yes | ID of the opportunity to update (e.g., "opp\_abc123") |
  | `name` | string | No | Name of the opportunity/deal (e.g., "Enterprise License - Q1") |
  | `amount` | string | No | Monetary value as a plain number string with no commas or currency symbols |
  | `opportunity_stage_id` | string | No | ID of the opportunity stage |
  | `owner_id` | string | No | User ID of the opportunity owner |
  | `closed_date` | string | No | Expected close date in YYYY-MM-DD format |
  | `typed_custom_fields` | json | No | Custom field values as \{ custom\_field\_id: value } map |

  #### Output [#output-19]

  | Parameter | Type | Description |
  | - | - | - |
  | `opportunity` | json | Updated opportunity data from Apollo |
  | `updated` | boolean | Whether the opportunity was successfully updated |
</ReferenceDetails>

### Apollo Search Sequences [#apollo-search-sequences]

Search for sequences/campaigns in your team's Apollo account (master key required)

<ReferenceDetails>
  #### Input [#input-20]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `q_name` | string | No | Search sequences by name (e.g., "Outbound Q1", "Follow-up") |
  | `page` | number | No | Page number for pagination (e.g., 1, 2, 3) |
  | `per_page` | number | No | Results per page, max 100 (e.g., 25, 50, 100) |

  #### Output [#output-20]

  | Parameter | Type | Description |
  | - | - | - |
  | `sequences` | json | Array of sequences/campaigns matching the search criteria |
  | `page` | number | Current page number |
  | `per_page` | number | Results per page |
  | `total_entries` | number | Total matching entries |
</ReferenceDetails>

### Apollo Add Contacts to Sequence [#apollo-add-contacts-to-sequence]

Add contacts to an Apollo sequence

<ReferenceDetails>
  #### Input [#input-21]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `sequence_id` | string | Yes | ID of the sequence to add contacts to (e.g., "seq\_abc123") |
  | `contact_ids` | array | No | Array of contact IDs to add to the sequence (e.g., \["con\_abc123", "con\_def456"]). Either contact\_ids or label\_names must be provided. |
  | `label_names` | array | No | Array of label names to identify contacts to add to the sequence. Either contact\_ids or label\_names must be provided. |
  | `send_email_from_email_account_id` | string | Yes | ID of the email account to send from. Use the Get Email Accounts operation to look this up. |
  | `send_email_from_email_address` | string | No | Specific email address to send from within the email account. |
  | `sequence_no_email` | boolean | No | Add contacts even if they have no email address |
  | `sequence_unverified_email` | boolean | No | Add contacts with unverified email addresses |
  | `sequence_job_change` | boolean | No | Add contacts who recently changed jobs |
  | `sequence_active_in_other_campaigns` | boolean | No | Add contacts active in other campaigns |
  | `sequence_finished_in_other_campaigns` | boolean | No | Add contacts who finished other campaigns |
  | `sequence_same_company_in_same_campaign` | boolean | No | Add contacts even if others from the same company are in the sequence |
  | `contacts_without_ownership_permission` | boolean | No | Add contacts without ownership permission |
  | `add_if_in_queue` | boolean | No | Add contacts even if they are in the queue |
  | `contact_verification_skipped` | boolean | No | Skip contact verification when adding |
  | `user_id` | string | No | ID of the user performing the action |
  | `status` | string | No | Initial status for added contacts: "active" or "paused" |
  | `auto_unpause_at` | string | No | ISO 8601 datetime to automatically unpause contacts |

  #### Output [#output-21]

  | Parameter | Type | Description |
  | - | - | - |
  | `added` | json | Array of contact objects successfully added to the sequence |
  | `skipped` | json | Array of contact objects that were skipped, with reasons |
  | `skipped_contact_ids` | json | Skipped contact IDs — either an array of IDs or a hash mapping ID → reason code |
  | `emailer_campaign` | json | Details of the emailer campaign (id, name) |
  | `sequence_id` | string | ID of the sequence contacts were added to |
  | `total_added` | number | Total number of contacts added |
  | `total_skipped` | number | Total number of contacts skipped |
</ReferenceDetails>

### Apollo Create Task [#apollo-create-task]

Create one or more tasks in Apollo (one task per contact\_id, master key required)

<ReferenceDetails>
  #### Input [#input-22]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `user_id` | string | Yes | ID of the Apollo user the task is assigned to |
  | `contact_ids` | array | Yes | Array of contact IDs. One task is created per contact. |
  | `priority` | string | No | Task priority: "high", "medium", or "low" (defaults to "medium") |
  | `due_at` | string | Yes | Due date/time in ISO 8601 format (e.g., "2024-12-31T23:59:59Z") |
  | `type` | string | Yes | Task type: "call", "outreach\_manual\_email", "linkedin\_step\_connect", "linkedin\_step\_message", "linkedin\_step\_view\_profile", "linkedin\_step\_interact\_post", or "action\_item" |
  | `status` | string | Yes | Task status: "scheduled", "completed", or "skipped" |
  | `note` | string | No | Free-form note providing context for the task |

  #### Output [#output-22]

  | Parameter | Type | Description |
  | - | - | - |
  | `tasks` | json | Array of created tasks (when returned by Apollo) |
  | `created` | boolean | Whether the request succeeded |
</ReferenceDetails>

### Apollo Search Tasks [#apollo-search-tasks]

Search for tasks in Apollo

<ReferenceDetails>
  #### Input [#input-23]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |
  | `sort_by_field` | string | No | Sort field: "task\_due\_at" or "task\_priority" |
  | `open_factor_names` | array | No | Filter by status. Common values: \["task\_types"] for open tasks, \["task\_completed\_at"] for completed tasks. |
  | `page` | number | No | Page number for pagination (e.g., 1, 2, 3) |
  | `per_page` | number | No | Results per page, max 100 (e.g., 25, 50, 100) |

  #### Output [#output-23]

  | Parameter | Type | Description |
  | - | - | - |
  | `tasks` | json | Array of tasks matching the search criteria |
  | `pagination` | json | Pagination information |
</ReferenceDetails>

### Apollo Get Email Accounts [#apollo-get-email-accounts]

Get list of team's linked email accounts in Apollo

<ReferenceDetails>
  #### Input [#input-24]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Apollo API key (master key required) |

  #### Output [#output-24]

  | Parameter | Type | Description |
  | - | - | - |
  | `email_accounts` | json | Array of team email accounts linked in Apollo |
  | `total` | number | Total count of email accounts |
</ReferenceDetails>
