n8n-nodes-apolloio
Version:
n8n node for Apollo.io - Search, Enrich, and Prospect People & Organizations via API
192 lines • 9.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.enrichOrganization = enrichOrganization;
exports.bulkEnrichOrganizations = bulkEnrichOrganizations;
exports.searchOrganizations = searchOrganizations;
const n8n_workflow_1 = require("n8n-workflow");
const transport_1 = require("../transport");
const utils_1 = require("../utils");
async function enrichOrganization() {
const items = this.getInputData();
const returnData = [];
for (let i = 0; i < items.length; i++) {
try {
const domain = this.getNodeParameter('organizationDomain', i);
const orgId = this.getNodeParameter('organizationId', i);
if (!domain) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Organization domain is required', {
itemIndex: i,
});
}
const qs = { domain };
if (orgId)
qs.id = orgId;
const response = await transport_1.apiRequest.call(this, 'GET', '/organizations/enrich', {}, qs);
returnData.push({ json: response.organization });
}
catch (error) {
if (this.continueOnFail()) {
returnData.push({ json: { error: error.message } });
continue;
}
throw error;
}
}
return returnData;
}
async function bulkEnrichOrganizations() {
const domainsJson = this.getNodeParameter('organizationDomainsJson', 0);
let domainsArray;
try {
domainsArray = JSON.parse(domainsJson);
}
catch {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid JSON for organization domains');
}
if (!Array.isArray(domainsArray) || domainsArray.length < 1 || domainsArray.length > 10) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Organization domains array must contain between 1 and 10 items');
}
if (!domainsArray.every((domain) => typeof domain === 'string')) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Organization domains array must contain only strings');
}
const response = await transport_1.apiRequest.call(this, 'POST', '/organizations/bulk_enrich', {
domains: domainsArray,
});
return this.helpers.returnJsonArray(response.organizations);
}
async function searchOrganizations() {
const items = this.getInputData();
const returnData = [];
for (let i = 0; i < items.length; i++) {
try {
const organizationNumEmployeesRanges = this.getNodeParameter('organizationNumEmployeesRanges', i);
const organizationLocations = this.getNodeParameter('organizationLocations', i);
const organizationNotLocations = this.getNodeParameter('organizationNotLocations', i);
const revenueRangeMin = this.getNodeParameter('revenueRangeMin', i);
const revenueRangeMax = this.getNodeParameter('revenueRangeMax', i);
const qOrganizationKeywordTags = this.getNodeParameter('qOrganizationKeywordTags', i);
const currentlyUsingAnyOfTechnologyUids = this.getNodeParameter('currentlyUsingAnyOfTechnologyUids', i);
const qOrganizationName = this.getNodeParameter('qOrganizationName', i);
const organizationIds = this.getNodeParameter('organizationIds', i);
const latestFundingAmountRangeMin = this.getNodeParameter('latestFundingAmountRangeMin', i);
const latestFundingAmountRangeMax = this.getNodeParameter('latestFundingAmountRangeMax', i);
const totalFundingRangeMin = this.getNodeParameter('totalFundingRangeMin', i);
const totalFundingRangeMax = this.getNodeParameter('totalFundingRangeMax', i);
const latestFundingDateRangeMin = this.getNodeParameter('latestFundingDateRangeMin', i);
const latestFundingDateRangeMax = this.getNodeParameter('latestFundingDateRangeMax', i);
const qOrganizationJobTitles = this.getNodeParameter('qOrganizationJobTitles', i);
const organizationJobLocations = this.getNodeParameter('organizationJobLocations', i);
const organizationNumJobsRangeMin = this.getNodeParameter('organizationNumJobsRangeMin', i);
const organizationNumJobsRangeMax = this.getNodeParameter('organizationNumJobsRangeMax', i);
const organizationJobPostedAtRangeMin = this.getNodeParameter('organizationJobPostedAtRangeMin', i);
const organizationJobPostedAtRangeMax = this.getNodeParameter('organizationJobPostedAtRangeMax', i);
const page = this.getNodeParameter('page', i);
const perPage = this.getNodeParameter('perPage', i);
const body = {
page,
per_page: perPage,
};
if (organizationNumEmployeesRanges) {
body.organization_num_employees_ranges = (0, utils_1.splitAndTrim)(organizationNumEmployeesRanges);
}
if (organizationLocations) {
body.organization_locations = (0, utils_1.splitAndTrim)(organizationLocations);
}
if (organizationNotLocations) {
body.organization_not_locations = (0, utils_1.splitAndTrim)(organizationNotLocations);
}
if (revenueRangeMin) {
body.revenue_range = { ...body.revenue_range, min: revenueRangeMin };
}
if (revenueRangeMax) {
body.revenue_range = { ...body.revenue_range, max: revenueRangeMax };
}
if (qOrganizationKeywordTags) {
body.q_organization_keyword_tags = (0, utils_1.splitAndTrim)(qOrganizationKeywordTags);
}
if (currentlyUsingAnyOfTechnologyUids) {
body.currently_using_any_of_technology_uids = (0, utils_1.splitAndTrim)(currentlyUsingAnyOfTechnologyUids);
}
if (qOrganizationName) {
body.q_organization_name = qOrganizationName;
}
if (organizationIds) {
body.organization_ids = (0, utils_1.splitAndTrim)(organizationIds);
}
if (latestFundingAmountRangeMin) {
body.latest_funding_amount_range = {
...body.latest_funding_amount_range,
min: latestFundingAmountRangeMin,
};
}
if (latestFundingAmountRangeMax) {
body.latest_funding_amount_range = {
...body.latest_funding_amount_range,
max: latestFundingAmountRangeMax,
};
}
if (totalFundingRangeMin) {
body.total_funding_range = { ...body.total_funding_range, min: totalFundingRangeMin };
}
if (totalFundingRangeMax) {
body.total_funding_range = { ...body.total_funding_range, max: totalFundingRangeMax };
}
if (latestFundingDateRangeMin) {
body.latest_funding_date_range = {
...body.latest_funding_date_range,
min: latestFundingDateRangeMin,
};
}
if (latestFundingDateRangeMax) {
body.latest_funding_date_range = {
...body.latest_funding_date_range,
max: latestFundingDateRangeMax,
};
}
if (qOrganizationJobTitles) {
body.q_organization_job_titles = (0, utils_1.splitAndTrim)(qOrganizationJobTitles);
}
if (organizationJobLocations) {
body.organization_job_locations = (0, utils_1.splitAndTrim)(organizationJobLocations);
}
if (organizationNumJobsRangeMin) {
body.organization_num_jobs_range = {
...body.organization_num_jobs_range,
min: organizationNumJobsRangeMin,
};
}
if (organizationNumJobsRangeMax) {
body.organization_num_jobs_range = {
...body.organization_num_jobs_range,
max: organizationNumJobsRangeMax,
};
}
if (organizationJobPostedAtRangeMin) {
body.organization_job_posted_at_range = {
...body.organization_job_posted_at_range,
min: organizationJobPostedAtRangeMin,
};
}
if (organizationJobPostedAtRangeMax) {
body.organization_job_posted_at_range = {
...body.organization_job_posted_at_range,
max: organizationJobPostedAtRangeMax,
};
}
const response = await transport_1.apiRequest.call(this, 'POST', '/mixed_companies/search', body);
const organizations = (response === null || response === void 0 ? void 0 : response.organizations) || (response === null || response === void 0 ? void 0 : response.accounts) || [];
for (const org of organizations) {
returnData.push({ json: org });
}
}
catch (error) {
if (this.continueOnFail()) {
returnData.push({ json: { error: error.message } });
continue;
}
throw error;
}
}
return returnData;
}
//# sourceMappingURL=Organization.js.map