Setu Recipes: reusable digital workers across every app.Browse templates

Integrations / ZoomInfo

ZoomInfo

Find and enrich B2B companies and contacts with ZoomInfo data: search accounts and people, then enrich records with firmographics, emails and phone numbers.

4 actions OAuth 2 4 read0 write Calls api.zoominfo.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "zoominfo" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
api:data:companySearch and enrich ZoomInfo company data
api:data:contactSearch and enrich ZoomInfo contact data

Actions

Enrich companiesreadzoominfo.enrich_companiesGet detailed ZoomInfo data for up to 25 companies matched by website, name or ID. Each matched record consumes a ZoomInfo credit.

Needs scope: api:data:company

InputTypeDescription
companiesarray of objectRequiredCompanies to match (1 to 25), each an object like {"companyWebsite":"www.zoominfo.com"}, {"companyName":"ZoomInfo"} or {"companyId":344589814}
output_fieldsarray of stringRequiredField names to return, for example id, name, website, ticker, socialMediaUrls
TypeScript
await setu.execute({
  userId: "user_1",
  action: "zoominfo.enrich_companies",
  input: {
    "companies": [],
    "output_fields": []
  },
});
Enrich contactsreadzoominfo.enrich_contactsGet detailed ZoomInfo data, including emails and phone numbers, for up to 25 contacts matched by person ID, email or name and company. Each returned record consumes a ZoomInfo credit.

Needs scope: api:data:contact

InputTypeDescription
contactsarray of objectRequiredContacts to match (1 to 25), each an object like {"personId":4191419698} or {"emailAddress":"[email protected]"} or {"firstName":"Filip","lastName":"Popovic","companyName":"ZoomInfo"}
output_fieldsarray of stringRequiredField names to return, for example id, email, companyName
required_fieldsarray of stringOptionalFields a record must have to be returned (and charged)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "zoominfo.enrich_contacts",
  input: {
    "contacts": [],
    "output_fields": []
  },
});
Search companiesreadzoominfo.search_companiesSearch ZoomInfo companies with filters such as name, website, industry, location or size. Returns basic company records and uses no credits; use enrich_companies for full details.

Needs scope: api:data:company

InputTypeDescription
filtersobjectRequiredFilters as ZoomInfo attribute names, for example {"companyName":"ZoomInfo"}, {"companyWebsite":"www.zoominfo.com"}, {"industryCodes":"education.university"}, {"employeeRangeMin":100}, {"country":"United States"}
sortstringOptionalSort field, prefix with - for descending. One of: name, employeeCount, revenue
page_numberintegerOptionalPage number, starting at 1
page_sizeintegerOptionalRecords per page, 1 to 100 (default 25)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "zoominfo.search_companies",
  input: {
    "filters": {}
  },
});
Search contactsreadzoominfo.search_contactsSearch ZoomInfo contacts by name, job title, company or location. Results show which data exists (email, phone) but not the values; use enrich_contacts for those. Uses no credits.

Needs scope: api:data:contact

InputTypeDescription
filtersobjectRequiredFilters as ZoomInfo attribute names, for example {"companyName":"ZoomInfo","firstName":"Filip"}, {"jobTitle":"CTO"}, {"managementLevel":"C Level Exec"}, {"personId":"4191419698"}
sortstringOptionalSort field, prefix with - for descending. One of: contactAccuracyScore, lastName, companyName, relevance
page_numberintegerOptionalPage number, starting at 1
page_sizeintegerOptionalRecords per page, 1 to 100 (default 25)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "zoominfo.search_contacts",
  input: {
    "filters": {}
  },
});