snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 3s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
# codegen
generated
# testing
/coverage
# dev
/dist/
.twenty
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# env files (can opt-in for committing if needed)
.env*
# typescript
*.tsbuildinfo
*.d.ts

View File

@@ -0,0 +1 @@
24.5.0

View File

@@ -0,0 +1,58 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"extends": ["../../.oxlintrc.base.json"],
"plugins": ["react", "typescript", "import", "unicorn"],
"categories": {
"correctness": "off"
},
"ignorePatterns": ["node_modules", "dist"],
"rules": {
"func-style": ["error", "declaration", { "allowArrowFunctions": true }],
"no-console": "off",
"no-control-regex": "off",
"no-debugger": "error",
"no-duplicate-imports": "error",
"no-undef": "off",
"no-unused-vars": "off",
"no-redeclare": "off",
"import/no-duplicates": "error",
"typescript/no-redeclare": "error",
"typescript/ban-ts-comment": "error",
"typescript/consistent-type-imports": [
"error",
{
"prefer": "type-imports",
"fixStyle": "inline-type-imports"
}
],
"typescript/explicit-function-return-type": "off",
"typescript/explicit-module-boundary-types": "off",
"typescript/no-empty-object-type": [
"error",
{
"allowInterfaces": "with-single-extends"
}
],
"typescript/no-empty-function": "off",
"typescript/no-explicit-any": "off",
"typescript/no-unused-vars": [
"warn",
{
"vars": "all",
"varsIgnorePattern": "^_",
"args": "after-used",
"argsIgnorePattern": "^_"
}
],
"react/no-unescaped-entities": "off",
"react/prop-types": "off",
"react/jsx-key": "off",
"react/display-name": "off",
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off",
"react/jsx-no-useless-fragment": "off",
"react/jsx-props-no-spreading": ["error", { "explicitSpread": "ignore" }],
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn"
}
}

View File

@@ -0,0 +1 @@
nodeLinker: node-modules

View File

@@ -0,0 +1,16 @@
# People Data Labs
**Turn a name into a full profile — enrich any Person or Company in one click.**
## ✨ What you get
- **+30 rich data fields** per Person and Company — seniority, skills, firmographics, funding, socials & more
- **Run it anywhere** — from the command menu, as a workflow step, or straight from AI chat
- **Smart matching** — finds the right profile from a LinkedIn, email, or domain, and only writes confident matches
## 💳 Billing
Pay only for matches, in Twenty credits — **not found and skipped records are free.**
- **Person match:** $0.336
- **Company match:** $0.12

View File

@@ -0,0 +1,38 @@
{
"name": "@twentyhq/people-data-labs",
"version": "1.0.10",
"description": "People Data Labs enrichment app for Twenty",
"license": "MIT",
"engines": {
"node": "^24.5.0",
"npm": "please-use-yarn",
"yarn": ">=4.0.2",
"twenty": ">=2.23.0"
},
"keywords": [
"twenty-app"
],
"packageManager": "yarn@4.13.0",
"scripts": {
"twenty": "twenty",
"lint": "oxlint -c .oxlintrc.json .",
"lint:fix": "oxlint --fix -c .oxlintrc.json .",
"typecheck": "tsgo --noEmit -p tsconfig.spec.json",
"test": "vitest run",
"test:watch": "vitest",
"test:unit": "vitest run --config vitest.unit.config.ts"
},
"devDependencies": {
"@types/node": "^24.7.2",
"@types/react": "^19.2.0",
"@typescript/native-preview": "^7.0.0-dev.20260116.1",
"oxlint": "^0.16.0",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"twenty-client-sdk": "2.37.0",
"twenty-sdk": "2.37.0",
"typescript": "^5.9.3",
"vite-tsconfig-paths": "^4.2.1",
"vitest": "^4.0.0"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -0,0 +1,87 @@
import * as fs from 'fs';
import * as os from 'os';
import * as path from 'path';
import { appDevOnce, appUninstall } from 'twenty-sdk/cli';
const APP_PATH = process.cwd();
const CONFIG_DIR = path.join(os.homedir(), '.twenty');
function validateEnv(): { apiUrl: string; apiKey: string } {
const apiUrl = process.env.TWENTY_API_URL;
const apiKey = process.env.TWENTY_API_KEY;
if (!apiUrl || !apiKey) {
throw new Error(
'TWENTY_API_URL and TWENTY_API_KEY must be set.\n' +
'Start a local server: yarn twenty docker:start\n' +
'Or set them in vitest env config.',
);
}
return { apiUrl, apiKey };
}
async function checkServer(apiUrl: string) {
let response: Response;
try {
response = await fetch(`${apiUrl}/healthz`);
} catch {
throw new Error(
`Twenty server is not reachable at ${apiUrl}. ` +
'Make sure the server is running before executing integration tests.',
);
}
if (!response.ok) {
throw new Error(`Server at ${apiUrl} returned ${response.status}`);
}
}
function writeConfig(apiUrl: string, apiKey: string) {
const payload = JSON.stringify(
{
remotes: {
local: { apiUrl, apiKey, accessToken: apiKey },
},
defaultRemote: 'local',
},
null,
2,
);
fs.mkdirSync(CONFIG_DIR, { recursive: true });
fs.writeFileSync(path.join(CONFIG_DIR, 'config.test.json'), payload);
}
export async function setup() {
const { apiUrl, apiKey } = validateEnv();
await checkServer(apiUrl);
writeConfig(apiUrl, apiKey);
await appUninstall({ appPath: APP_PATH }).catch(() => {});
const result = await appDevOnce({
appPath: APP_PATH,
onProgress: (message: string) => console.log(`[dev] ${message}`),
});
if (!result.success) {
throw new Error(
`Dev sync failed: ${result.error?.message ?? 'Unknown error'}`,
);
}
}
export async function teardown() {
const uninstallResult = await appUninstall({ appPath: APP_PATH });
if (!uninstallResult.success) {
console.warn(
`App uninstall failed: ${uninstallResult.error?.message ?? 'Unknown error'}`,
);
}
}

View File

@@ -0,0 +1,25 @@
import { MetadataApiClient } from 'twenty-client-sdk/metadata';
import { describe, expect, it } from 'vitest';
import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';
describe('People Data Labs app installation', () => {
it('should find the installed People Data Labs app in the applications list', async () => {
const client = new MetadataApiClient();
const result = await client.query({
findManyApplications: {
id: true,
name: true,
universalIdentifier: true,
},
});
const matchingApplication = result.findManyApplications.find(
(application: { universalIdentifier: string }) =>
application.universalIdentifier === APPLICATION_UNIVERSAL_IDENTIFIER,
);
expect(matchingApplication).toBeDefined();
});
});

View File

@@ -0,0 +1,20 @@
import { defineApplication } from 'twenty-sdk/define';
import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';
export default defineApplication({
universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER,
displayName: 'People Data Labs',
description: 'Enrich People and Companies with People Data Labs data.',
logoUrl: 'public/people-data-labs-icon.png',
category: 'Enrichment',
author: 'Twenty',
screenshots: ['public/gallery/cover.png'],
serverVariables: {
PDL_API_KEY: {
description: 'People Data Labs API key',
isSecret: true,
isRequired: true,
},
},
});

View File

@@ -0,0 +1,15 @@
import { defineCommandMenuItem, isSelectAll, STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS } from 'twenty-sdk/define';
import {
PDL_COMMAND_MENU_ITEM_UNIVERSAL_IDENTIFIERS,
PDL_FRONT_COMPONENT_UNIVERSAL_IDENTIFIERS
} from 'src/constants/universal-identifiers';
export default defineCommandMenuItem({
universalIdentifier: PDL_COMMAND_MENU_ITEM_UNIVERSAL_IDENTIFIERS.enrichCompanies,
availabilityObjectUniversalIdentifier: STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
frontComponentUniversalIdentifier:
PDL_FRONT_COMPONENT_UNIVERSAL_IDENTIFIERS.enrichCompanies,
label: 'Enrich companies',
availabilityType: 'RECORD_SELECTION',
conditionalAvailabilityExpression: !isSelectAll,
});

View File

@@ -0,0 +1,15 @@
import { defineCommandMenuItem, isSelectAll, STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS } from 'twenty-sdk/define';
import {
PDL_COMMAND_MENU_ITEM_UNIVERSAL_IDENTIFIERS,
PDL_FRONT_COMPONENT_UNIVERSAL_IDENTIFIERS
} from 'src/constants/universal-identifiers';
export default defineCommandMenuItem({
universalIdentifier: PDL_COMMAND_MENU_ITEM_UNIVERSAL_IDENTIFIERS.enrichPeople,
availabilityObjectUniversalIdentifier: STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
frontComponentUniversalIdentifier:
PDL_FRONT_COMPONENT_UNIVERSAL_IDENTIFIERS.enrichPeople,
label: 'Enrich people',
availabilityType: 'RECORD_SELECTION',
conditionalAvailabilityExpression: !isSelectAll,
});

View File

@@ -0,0 +1,152 @@
import { describe, expect, it } from 'vitest';
import { COMPANY_TYPE_OPTIONS } from 'src/constants/company-type-options';
import { ENRICHMENT_STATUS_OPTIONS } from 'src/constants/enrichment-status-options';
import { FUNDING_STAGE_OPTIONS } from 'src/constants/funding-stage-options';
import { INDUSTRY_OPTIONS } from 'src/constants/industry-options';
import { INFERRED_SALARY_OPTIONS } from 'src/constants/inferred-salary-options';
import { JOB_ROLE_OPTIONS } from 'src/constants/job-role-options';
import { JOB_TITLE_CLASS_OPTIONS } from 'src/constants/job-title-class-options';
import { JOB_TITLE_SUB_ROLE_OPTIONS } from 'src/constants/job-title-sub-role-options';
import { LOCATION_CONTINENT_OPTIONS } from 'src/constants/location-continent-options';
import { METRO_OPTIONS } from 'src/constants/metro-options';
import { MIC_EXCHANGE_OPTIONS } from 'src/constants/mic-exchange-options';
import { SENIORITY_OPTIONS } from 'src/constants/seniority-options';
import { SEX_OPTIONS } from 'src/constants/sex-options';
import { SIZE_OPTIONS } from 'src/constants/size-options';
import {
APPLICATION_UNIVERSAL_IDENTIFIER,
DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_LOGIC_FUNCTION_CONSTANTS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
PDL_VIEW_UNIVERSAL_IDENTIFIERS
} from 'src/constants/universal-identifiers';
import { type SelectOptionMeta } from 'src/types/select-option-meta';
import { normalizeEnumValue } from 'src/utils/normalize-enum-value';
import companyEnrichmentStatusField from 'src/fields/company/pdl-enrichment-status.field';
import companyFundingStagesField from 'src/fields/company/pdl-funding-stages.field';
import companyIndustryField from 'src/fields/company/pdl-industry.field';
import companyLatestFundingStageField from 'src/fields/company/pdl-latest-funding-stage.field';
import companyLocationContinentField from 'src/fields/company/pdl-location-continent.field';
import companyLocationMetroField from 'src/fields/company/pdl-location-metro.field';
import companyMicExchangeField from 'src/fields/company/pdl-mic-exchange.field';
import companySizeRangeField from 'src/fields/company/pdl-size-range.field';
import companyTypeField from 'src/fields/company/pdl-company-type.field';
import personEnrichmentStatusField from 'src/fields/person/pdl-enrichment-status.field';
import personIndustryField from 'src/fields/person/pdl-industry.field';
import personInferredSalaryField from 'src/fields/person/pdl-inferred-salary.field';
import personJobRoleField from 'src/fields/person/pdl-job-role.field';
import personJobTitleClassField from 'src/fields/person/pdl-job-title-class.field';
import personJobTitleSubRoleField from 'src/fields/person/pdl-job-title-sub-role.field';
import personLocationMetroField from 'src/fields/person/pdl-location-metro.field';
import personSeniorityField from 'src/fields/person/pdl-seniority.field';
import personSexField from 'src/fields/person/pdl-sex.field';
type FieldOption = { id?: string; value: string };
const fieldOptions = (field: unknown): FieldOption[] =>
(field as { config?: { options?: FieldOption[] } }).config?.options ?? [];
const selectFieldCases: {
name: string;
field: unknown;
options: readonly SelectOptionMeta[];
}[] = [
{ name: 'person.pdlSeniority', field: personSeniorityField, options: SENIORITY_OPTIONS },
{ name: 'person.pdlJobRole', field: personJobRoleField, options: JOB_ROLE_OPTIONS },
{ name: 'person.pdlJobTitleClass', field: personJobTitleClassField, options: JOB_TITLE_CLASS_OPTIONS },
{ name: 'person.pdlJobTitleSubRole', field: personJobTitleSubRoleField, options: JOB_TITLE_SUB_ROLE_OPTIONS },
{ name: 'person.pdlSex', field: personSexField, options: SEX_OPTIONS },
{ name: 'person.pdlInferredSalary', field: personInferredSalaryField, options: INFERRED_SALARY_OPTIONS },
{ name: 'person.pdlIndustry', field: personIndustryField, options: INDUSTRY_OPTIONS },
{ name: 'person.pdlLocationMetro', field: personLocationMetroField, options: METRO_OPTIONS },
{ name: 'person.pdlEnrichmentStatus', field: personEnrichmentStatusField, options: ENRICHMENT_STATUS_OPTIONS },
{ name: 'company.pdlCompanyType', field: companyTypeField, options: COMPANY_TYPE_OPTIONS },
{ name: 'company.pdlLocationContinent', field: companyLocationContinentField, options: LOCATION_CONTINENT_OPTIONS },
{ name: 'company.pdlMicExchange', field: companyMicExchangeField, options: MIC_EXCHANGE_OPTIONS },
{ name: 'company.pdlIndustry', field: companyIndustryField, options: INDUSTRY_OPTIONS },
{ name: 'company.pdlLocationMetro', field: companyLocationMetroField, options: METRO_OPTIONS },
{ name: 'company.pdlSizeRange', field: companySizeRangeField, options: SIZE_OPTIONS },
{ name: 'company.pdlLatestFundingStage', field: companyLatestFundingStageField, options: FUNDING_STAGE_OPTIONS },
{ name: 'company.pdlFundingStages', field: companyFundingStagesField, options: FUNDING_STAGE_OPTIONS },
{ name: 'company.pdlEnrichmentStatus', field: companyEnrichmentStatusField, options: ENRICHMENT_STATUS_OPTIONS },
];
describe.each(selectFieldCases)('$name options', ({ field, options }) => {
it('resolves a universalIdentifier for every option', () => {
expect(fieldOptions(field).every((option) => Boolean(option.id))).toBe(true);
});
it('exposes exactly the values from its source constant', () => {
expect(fieldOptions(field).map((option) => option.value)).toEqual(
options.map((option) => option.value),
);
});
it('uses option values that are normalizeEnumValue fixed points', () => {
for (const option of fieldOptions(field)) {
expect(normalizeEnumValue(option.value)).toBe(option.value);
}
});
it('has option ids that are unique within the field', () => {
const ids = fieldOptions(field).map((option) => option.id);
expect(new Set(ids).size).toBe(ids.length);
});
});
describe('select fields collectively', () => {
it('never reuses an option id across two different fields', () => {
const everyOptionId = selectFieldCases.flatMap(({ field }) =>
fieldOptions(field).map((option) => option.id),
);
expect(new Set(everyOptionId).size).toBe(everyOptionId.length);
});
});
const UUID_V4_REGEX =
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
const hasUniversalIdentifier = (
value: object,
): value is { universalIdentifier: string } =>
'universalIdentifier' in value &&
typeof (value as { universalIdentifier: unknown }).universalIdentifier ===
'string';
const collectUuids = (value: unknown): string[] => {
if (typeof value === 'string') {
return [value];
}
if (value !== null && typeof value === 'object') {
if (!Array.isArray(value) && hasUniversalIdentifier(value)) {
return [value.universalIdentifier];
}
return Object.values(value).flatMap(collectUuids);
}
return [];
};
describe('universal-identifier registry', () => {
const registryUuids = collectUuids([
APPLICATION_UNIVERSAL_IDENTIFIER,
DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
PDL_LOGIC_FUNCTION_CONSTANTS,
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_VIEW_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
]);
it('contains only valid v4 UUIDs', () => {
expect(registryUuids.filter((uuid) => !UUID_V4_REGEX.test(uuid))).toEqual(
[],
);
});
it('contains no duplicate UUIDs across the whole registry', () => {
expect(new Set(registryUuids).size).toBe(registryUuids.length);
});
});

View File

@@ -0,0 +1 @@
export const BILLING_MARGIN_MULTIPLIER = 1.2;

View File

@@ -0,0 +1 @@
export const COMPANY_MATCH_COST_DOLLARS = 0.1;

View File

@@ -0,0 +1,46 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const COMPANY_TYPE_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'public',
value: 'PUBLIC',
label: 'Public',
color: 'blue',
position: 0,
},
{
key: 'private',
value: 'PRIVATE',
label: 'Private',
color: 'red',
position: 1,
},
{
key: 'publicSubsidiary',
value: 'PUBLIC_SUBSIDIARY',
label: 'Public Subsidiary',
color: 'green',
position: 2,
},
{
key: 'educational',
value: 'EDUCATIONAL',
label: 'Educational',
color: 'orange',
position: 3,
},
{
key: 'government',
value: 'GOVERNMENT',
label: 'Government',
color: 'purple',
position: 4,
},
{
key: 'nonprofit',
value: 'NONPROFIT',
label: 'Nonprofit',
color: 'yellow',
position: 5,
},
];

View File

@@ -0,0 +1,19 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const ENRICHMENT_STATUS_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'matched',
value: 'MATCHED',
label: 'Matched',
color: 'green',
position: 0,
},
{
key: 'notFound',
value: 'NOT_FOUND',
label: 'No Match',
color: 'gray',
position: 1,
},
{ key: 'error', value: 'ERROR', label: 'Error', color: 'red', position: 2 },
];

View File

@@ -0,0 +1,27 @@
import { PDL_LOGIC_FUNCTION_CONSTANTS } from 'src/constants/universal-identifiers';
import { type EnrichmentWorkflowSeed } from 'src/types/enrichment-workflow-seed';
const ENRICHMENT_ICON = 'IconSparkles';
export const ENRICHMENT_WORKFLOW_SEEDS: EnrichmentWorkflowSeed[] = [
{
objectNameSingular: 'company',
workflowName: 'Enrich companies with People Data Labs',
triggerName: 'When companies are selected',
icon: ENRICHMENT_ICON,
stepName: 'Enrich Companies',
logicFunctionUniversalIdentifier:
PDL_LOGIC_FUNCTION_CONSTANTS.enrichCompanies.universalIdentifier,
logicFunctionInput: { records: '{{trigger.companies}}' },
},
{
objectNameSingular: 'person',
workflowName: 'Enrich people with People Data Labs',
triggerName: 'When people are selected',
icon: ENRICHMENT_ICON,
stepName: 'Enrich People',
logicFunctionUniversalIdentifier:
PDL_LOGIC_FUNCTION_CONSTANTS.enrichPeople.universalIdentifier,
logicFunctionInput: { records: '{{trigger.people}}' },
},
];

View File

@@ -0,0 +1,195 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const FUNDING_STAGE_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'angel',
value: 'ANGEL',
label: 'Angel',
color: 'blue',
position: 0,
},
{
key: 'convertibleNote',
value: 'CONVERTIBLE_NOTE',
label: 'Convertible Note',
color: 'red',
position: 1,
},
{
key: 'corporateRound',
value: 'CORPORATE_ROUND',
label: 'Corporate Round',
color: 'green',
position: 2,
},
{
key: 'debtFinancing',
value: 'DEBT_FINANCING',
label: 'Debt Financing',
color: 'orange',
position: 3,
},
{
key: 'equityCrowdfunding',
value: 'EQUITY_CROWDFUNDING',
label: 'Equity Crowdfunding',
color: 'purple',
position: 4,
},
{
key: 'fundingRound',
value: 'FUNDING_ROUND',
label: 'Funding Round',
color: 'yellow',
position: 5,
},
{ key: 'grant', value: 'GRANT', label: 'Grant', color: 'pink', position: 6 },
{
key: 'initialCoinOffering',
value: 'INITIAL_COIN_OFFERING',
label: 'Initial Coin Offering',
color: 'cyan',
position: 7,
},
{
key: 'nonEquityAssistance',
value: 'NON_EQUITY_ASSISTANCE',
label: 'Non-Equity Assistance',
color: 'brown',
position: 8,
},
{
key: 'postIpoDebt',
value: 'POST_IPO_DEBT',
label: 'Post-IPO Debt',
color: 'lime',
position: 9,
},
{
key: 'postIpoEquity',
value: 'POST_IPO_EQUITY',
label: 'Post-IPO Equity',
color: 'violet',
position: 10,
},
{
key: 'postIpoSecondary',
value: 'POST_IPO_SECONDARY',
label: 'Post-IPO Secondary',
color: 'gold',
position: 11,
},
{
key: 'preSeed',
value: 'PRE_SEED',
label: 'Pre-Seed',
color: 'turquoise',
position: 12,
},
{
key: 'privateEquity',
value: 'PRIVATE_EQUITY',
label: 'Private Equity',
color: 'crimson',
position: 13,
},
{
key: 'productCrowdfunding',
value: 'PRODUCT_CROWDFUNDING',
label: 'Product Crowdfunding',
color: 'sky',
position: 14,
},
{
key: 'secondaryMarket',
value: 'SECONDARY_MARKET',
label: 'Secondary Market',
color: 'amber',
position: 15,
},
{ key: 'seed', value: 'SEED', label: 'Seed', color: 'plum', position: 16 },
{
key: 'seriesA',
value: 'SERIES_A',
label: 'Series A',
color: 'grass',
position: 17,
},
{
key: 'seriesB',
value: 'SERIES_B',
label: 'Series B',
color: 'tomato',
position: 18,
},
{
key: 'seriesC',
value: 'SERIES_C',
label: 'Series C',
color: 'iris',
position: 19,
},
{
key: 'seriesD',
value: 'SERIES_D',
label: 'Series D',
color: 'mint',
position: 20,
},
{
key: 'seriesE',
value: 'SERIES_E',
label: 'Series E',
color: 'ruby',
position: 21,
},
{
key: 'seriesF',
value: 'SERIES_F',
label: 'Series F',
color: 'bronze',
position: 22,
},
{
key: 'seriesG',
value: 'SERIES_G',
label: 'Series G',
color: 'jade',
position: 23,
},
{
key: 'seriesH',
value: 'SERIES_H',
label: 'Series H',
color: 'gray',
position: 24,
},
{
key: 'seriesI',
value: 'SERIES_I',
label: 'Series I',
color: 'blue',
position: 25,
},
{
key: 'seriesJ',
value: 'SERIES_J',
label: 'Series J',
color: 'red',
position: 26,
},
{
key: 'seriesUnknown',
value: 'SERIES_UNKNOWN',
label: 'Series Unknown',
color: 'green',
position: 27,
},
{
key: 'undisclosed',
value: 'UNDISCLOSED',
label: 'Undisclosed',
color: 'orange',
position: 28,
},
];

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,81 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const INFERRED_SALARY_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'under20000',
value: 'UNDER_20000',
label: '<20K',
color: 'blue',
position: 0,
},
{
key: 'from20000To25000',
value: 'FROM_20000_TO_25000',
label: '20K-25K',
color: 'red',
position: 1,
},
{
key: 'from25000To35000',
value: 'FROM_25000_TO_35000',
label: '25K-35K',
color: 'green',
position: 2,
},
{
key: 'from35000To45000',
value: 'FROM_35000_TO_45000',
label: '35K-45K',
color: 'orange',
position: 3,
},
{
key: 'from45000To55000',
value: 'FROM_45000_TO_55000',
label: '45K-55K',
color: 'purple',
position: 4,
},
{
key: 'from55000To70000',
value: 'FROM_55000_TO_70000',
label: '55K-70K',
color: 'yellow',
position: 5,
},
{
key: 'from70000To85000',
value: 'FROM_70000_TO_85000',
label: '70K-85K',
color: 'pink',
position: 6,
},
{
key: 'from85000To100000',
value: 'FROM_85000_TO_100000',
label: '85K-100K',
color: 'cyan',
position: 7,
},
{
key: 'from100000To150000',
value: 'FROM_100000_TO_150000',
label: '100K-150K',
color: 'brown',
position: 8,
},
{
key: 'from150000To250000',
value: 'FROM_150000_TO_250000',
label: '150K-250K',
color: 'lime',
position: 9,
},
{
key: 'over250000',
value: 'OVER_250000',
label: '>250K',
color: 'violet',
position: 10,
},
];

View File

@@ -0,0 +1,172 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const JOB_ROLE_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'advisory',
value: 'ADVISORY',
label: 'Advisory',
color: 'blue',
position: 0,
},
{
key: 'analyst',
value: 'ANALYST',
label: 'Analyst',
color: 'red',
position: 1,
},
{
key: 'creative',
value: 'CREATIVE',
label: 'Creative',
color: 'green',
position: 2,
},
{
key: 'education',
value: 'EDUCATION',
label: 'Education',
color: 'orange',
position: 3,
},
{
key: 'engineering',
value: 'ENGINEERING',
label: 'Engineering',
color: 'purple',
position: 4,
},
{
key: 'finance',
value: 'FINANCE',
label: 'Finance',
color: 'yellow',
position: 5,
},
{
key: 'fulfillment',
value: 'FULFILLMENT',
label: 'Fulfillment',
color: 'pink',
position: 6,
},
{
key: 'health',
value: 'HEALTH',
label: 'Health',
color: 'cyan',
position: 7,
},
{
key: 'hospitality',
value: 'HOSPITALITY',
label: 'Hospitality',
color: 'brown',
position: 8,
},
{
key: 'humanResources',
value: 'HUMAN_RESOURCES',
label: 'Human Resources',
color: 'lime',
position: 9,
},
{
key: 'legal',
value: 'LEGAL',
label: 'Legal',
color: 'violet',
position: 10,
},
{
key: 'manufacturing',
value: 'MANUFACTURING',
label: 'Manufacturing',
color: 'gold',
position: 11,
},
{
key: 'marketing',
value: 'MARKETING',
label: 'Marketing',
color: 'turquoise',
position: 12,
},
{
key: 'operations',
value: 'OPERATIONS',
label: 'Operations',
color: 'crimson',
position: 13,
},
{
key: 'partnerships',
value: 'PARTNERSHIPS',
label: 'Partnerships',
color: 'sky',
position: 14,
},
{
key: 'product',
value: 'PRODUCT',
label: 'Product',
color: 'amber',
position: 15,
},
{
key: 'professionalService',
value: 'PROFESSIONAL_SERVICE',
label: 'Professional Service',
color: 'plum',
position: 16,
},
{
key: 'publicService',
value: 'PUBLIC_SERVICE',
label: 'Public Service',
color: 'grass',
position: 17,
},
{
key: 'research',
value: 'RESEARCH',
label: 'Research',
color: 'tomato',
position: 18,
},
{
key: 'sales',
value: 'SALES',
label: 'Sales',
color: 'iris',
position: 19,
},
{
key: 'salesEngineering',
value: 'SALES_ENGINEERING',
label: 'Sales Engineering',
color: 'mint',
position: 20,
},
{
key: 'support',
value: 'SUPPORT',
label: 'Support',
color: 'ruby',
position: 21,
},
{
key: 'trade',
value: 'TRADE',
label: 'Trade',
color: 'bronze',
position: 22,
},
{
key: 'unemployed',
value: 'UNEMPLOYED',
label: 'Unemployed',
color: 'jade',
position: 23,
},
];

View File

@@ -0,0 +1,39 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const JOB_TITLE_CLASS_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'generalAndAdministrative',
value: 'GENERAL_AND_ADMINISTRATIVE',
label: 'General and Administrative',
color: 'blue',
position: 0,
},
{
key: 'researchAndDevelopment',
value: 'RESEARCH_AND_DEVELOPMENT',
label: 'Research and Development',
color: 'red',
position: 1,
},
{
key: 'salesAndMarketing',
value: 'SALES_AND_MARKETING',
label: 'Sales and Marketing',
color: 'green',
position: 2,
},
{
key: 'services',
value: 'SERVICES',
label: 'Services',
color: 'orange',
position: 3,
},
{
key: 'unemployed',
value: 'UNEMPLOYED',
label: 'Unemployed',
color: 'purple',
position: 4,
},
];

View File

@@ -0,0 +1,746 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const JOB_TITLE_SUB_ROLE_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'academic',
value: 'ACADEMIC',
label: 'Academic',
color: 'blue',
position: 0,
},
{
key: 'accountExecutive',
value: 'ACCOUNT_EXECUTIVE',
label: 'Account Executive',
color: 'red',
position: 1,
},
{
key: 'accountManagement',
value: 'ACCOUNT_MANAGEMENT',
label: 'Account Management',
color: 'green',
position: 2,
},
{
key: 'accounting',
value: 'ACCOUNTING',
label: 'Accounting',
color: 'orange',
position: 3,
},
{
key: 'accountingServices',
value: 'ACCOUNTING_SERVICES',
label: 'Accounting Services',
color: 'purple',
position: 4,
},
{
key: 'administrative',
value: 'ADMINISTRATIVE',
label: 'Administrative',
color: 'yellow',
position: 5,
},
{
key: 'advisor',
value: 'ADVISOR',
label: 'Advisor',
color: 'pink',
position: 6,
},
{
key: 'agriculture',
value: 'AGRICULTURE',
label: 'Agriculture',
color: 'cyan',
position: 7,
},
{
key: 'aides',
value: 'AIDES',
label: 'Aides',
color: 'brown',
position: 8,
},
{
key: 'architecture',
value: 'ARCHITECTURE',
label: 'Architecture',
color: 'lime',
position: 9,
},
{
key: 'artist',
value: 'ARTIST',
label: 'Artist',
color: 'violet',
position: 10,
},
{
key: 'boardMember',
value: 'BOARD_MEMBER',
label: 'Board Member',
color: 'gold',
position: 11,
},
{
key: 'bookkeeping',
value: 'BOOKKEEPING',
label: 'Bookkeeping',
color: 'turquoise',
position: 12,
},
{
key: 'brand',
value: 'BRAND',
label: 'Brand',
color: 'crimson',
position: 13,
},
{
key: 'buildingAndGrounds',
value: 'BUILDING_AND_GROUNDS',
label: 'Building and Grounds',
color: 'sky',
position: 14,
},
{
key: 'businessAnalyst',
value: 'BUSINESS_ANALYST',
label: 'Business Analyst',
color: 'amber',
position: 15,
},
{
key: 'businessDevelopment',
value: 'BUSINESS_DEVELOPMENT',
label: 'Business Development',
color: 'plum',
position: 16,
},
{
key: 'chemical',
value: 'CHEMICAL',
label: 'Chemical',
color: 'grass',
position: 17,
},
{
key: 'compliance',
value: 'COMPLIANCE',
label: 'Compliance',
color: 'tomato',
position: 18,
},
{
key: 'construction',
value: 'CONSTRUCTION',
label: 'Construction',
color: 'iris',
position: 19,
},
{
key: 'consulting',
value: 'CONSULTING',
label: 'Consulting',
color: 'mint',
position: 20,
},
{
key: 'content',
value: 'CONTENT',
label: 'Content',
color: 'ruby',
position: 21,
},
{
key: 'corporateDevelopment',
value: 'CORPORATE_DEVELOPMENT',
label: 'Corporate Development',
color: 'bronze',
position: 22,
},
{
key: 'curation',
value: 'CURATION',
label: 'Curation',
color: 'jade',
position: 23,
},
{
key: 'customerSuccess',
value: 'CUSTOMER_SUCCESS',
label: 'Customer Success',
color: 'gray',
position: 24,
},
{
key: 'customerSupport',
value: 'CUSTOMER_SUPPORT',
label: 'Customer Support',
color: 'blue',
position: 25,
},
{
key: 'dataAnalyst',
value: 'DATA_ANALYST',
label: 'Data Analyst',
color: 'red',
position: 26,
},
{
key: 'dataEngineering',
value: 'DATA_ENGINEERING',
label: 'Data Engineering',
color: 'green',
position: 27,
},
{
key: 'dataScience',
value: 'DATA_SCIENCE',
label: 'Data Science',
color: 'orange',
position: 28,
},
{
key: 'dental',
value: 'DENTAL',
label: 'Dental',
color: 'purple',
position: 29,
},
{
key: 'devops',
value: 'DEVOPS',
label: 'DevOps',
color: 'yellow',
position: 30,
},
{
key: 'doctor',
value: 'DOCTOR',
label: 'Doctor',
color: 'pink',
position: 31,
},
{
key: 'electric',
value: 'ELECTRIC',
label: 'Electric',
color: 'cyan',
position: 32,
},
{
key: 'electrical',
value: 'ELECTRICAL',
label: 'Electrical',
color: 'brown',
position: 33,
},
{
key: 'emergencyServices',
value: 'EMERGENCY_SERVICES',
label: 'Emergency Services',
color: 'lime',
position: 34,
},
{
key: 'entertainment',
value: 'ENTERTAINMENT',
label: 'Entertainment',
color: 'violet',
position: 35,
},
{
key: 'executive',
value: 'EXECUTIVE',
label: 'Executive',
color: 'gold',
position: 36,
},
{
key: 'fashion',
value: 'FASHION',
label: 'Fashion',
color: 'turquoise',
position: 37,
},
{
key: 'financial',
value: 'FINANCIAL',
label: 'Financial',
color: 'crimson',
position: 38,
},
{
key: 'fitness',
value: 'FITNESS',
label: 'Fitness',
color: 'sky',
position: 39,
},
{
key: 'fraud',
value: 'FRAUD',
label: 'Fraud',
color: 'amber',
position: 40,
},
{
key: 'graphicDesign',
value: 'GRAPHIC_DESIGN',
label: 'Graphic Design',
color: 'plum',
position: 41,
},
{
key: 'growth',
value: 'GROWTH',
label: 'Growth',
color: 'grass',
position: 42,
},
{
key: 'hairStylist',
value: 'HAIR_STYLIST',
label: 'Hair Stylist',
color: 'tomato',
position: 43,
},
{
key: 'hardware',
value: 'HARDWARE',
label: 'Hardware',
color: 'iris',
position: 44,
},
{
key: 'healthAndSafety',
value: 'HEALTH_AND_SAFETY',
label: 'Health and Safety',
color: 'mint',
position: 45,
},
{
key: 'humanResources',
value: 'HUMAN_RESOURCES',
label: 'Human Resources',
color: 'ruby',
position: 46,
},
{
key: 'implementation',
value: 'IMPLEMENTATION',
label: 'Implementation',
color: 'bronze',
position: 47,
},
{
key: 'industrial',
value: 'INDUSTRIAL',
label: 'Industrial',
color: 'jade',
position: 48,
},
{
key: 'informationTechnology',
value: 'INFORMATION_TECHNOLOGY',
label: 'Information Technology',
color: 'gray',
position: 49,
},
{
key: 'insurance',
value: 'INSURANCE',
label: 'Insurance',
color: 'blue',
position: 50,
},
{
key: 'investmentBanking',
value: 'INVESTMENT_BANKING',
label: 'Investment Banking',
color: 'red',
position: 51,
},
{
key: 'investor',
value: 'INVESTOR',
label: 'Investor',
color: 'green',
position: 52,
},
{
key: 'investorRelations',
value: 'INVESTOR_RELATIONS',
label: 'Investor Relations',
color: 'orange',
position: 53,
},
{
key: 'journalism',
value: 'JOURNALISM',
label: 'Journalism',
color: 'purple',
position: 54,
},
{
key: 'judicial',
value: 'JUDICIAL',
label: 'Judicial',
color: 'yellow',
position: 55,
},
{
key: 'legal',
value: 'LEGAL',
label: 'Legal',
color: 'pink',
position: 56,
},
{
key: 'legalServices',
value: 'LEGAL_SERVICES',
label: 'Legal Services',
color: 'cyan',
position: 57,
},
{
key: 'logistics',
value: 'LOGISTICS',
label: 'Logistics',
color: 'brown',
position: 58,
},
{
key: 'machinist',
value: 'MACHINIST',
label: 'Machinist',
color: 'lime',
position: 59,
},
{
key: 'marketingDesign',
value: 'MARKETING_DESIGN',
label: 'Marketing Design',
color: 'violet',
position: 60,
},
{
key: 'marketingServices',
value: 'MARKETING_SERVICES',
label: 'Marketing Services',
color: 'gold',
position: 61,
},
{
key: 'mechanic',
value: 'MECHANIC',
label: 'Mechanic',
color: 'turquoise',
position: 62,
},
{
key: 'mechanical',
value: 'MECHANICAL',
label: 'Mechanical',
color: 'crimson',
position: 63,
},
{
key: 'military',
value: 'MILITARY',
label: 'Military',
color: 'sky',
position: 64,
},
{
key: 'network',
value: 'NETWORK',
label: 'Network',
color: 'amber',
position: 65,
},
{
key: 'nursing',
value: 'NURSING',
label: 'Nursing',
color: 'plum',
position: 66,
},
{
key: 'partnerships',
value: 'PARTNERSHIPS',
label: 'Partnerships',
color: 'grass',
position: 67,
},
{
key: 'pharmacy',
value: 'PHARMACY',
label: 'Pharmacy',
color: 'tomato',
position: 68,
},
{
key: 'planningAndAnalysis',
value: 'PLANNING_AND_ANALYSIS',
label: 'Planning and Analysis',
color: 'iris',
position: 69,
},
{
key: 'plumbing',
value: 'PLUMBING',
label: 'Plumbing',
color: 'mint',
position: 70,
},
{
key: 'political',
value: 'POLITICAL',
label: 'Political',
color: 'ruby',
position: 71,
},
{
key: 'primaryAndSecondary',
value: 'PRIMARY_AND_SECONDARY',
label: 'Primary and Secondary',
color: 'bronze',
position: 72,
},
{
key: 'procurement',
value: 'PROCUREMENT',
label: 'Procurement',
color: 'jade',
position: 73,
},
{
key: 'productDesign',
value: 'PRODUCT_DESIGN',
label: 'Product Design',
color: 'gray',
position: 74,
},
{
key: 'productManagement',
value: 'PRODUCT_MANAGEMENT',
label: 'Product Management',
color: 'blue',
position: 75,
},
{
key: 'professor',
value: 'PROFESSOR',
label: 'Professor',
color: 'red',
position: 76,
},
{
key: 'projectManagement',
value: 'PROJECT_MANAGEMENT',
label: 'Project Management',
color: 'green',
position: 77,
},
{
key: 'protectiveService',
value: 'PROTECTIVE_SERVICE',
label: 'Protective Service',
color: 'orange',
position: 78,
},
{
key: 'qaEngineering',
value: 'QA_ENGINEERING',
label: 'QA Engineering',
color: 'purple',
position: 79,
},
{
key: 'qualityAssurance',
value: 'QUALITY_ASSURANCE',
label: 'Quality Assurance',
color: 'yellow',
position: 80,
},
{
key: 'realtor',
value: 'REALTOR',
label: 'Realtor',
color: 'pink',
position: 81,
},
{
key: 'recruiting',
value: 'RECRUITING',
label: 'Recruiting',
color: 'cyan',
position: 82,
},
{
key: 'restaurants',
value: 'RESTAURANTS',
label: 'Restaurants',
color: 'brown',
position: 83,
},
{
key: 'retail',
value: 'RETAIL',
label: 'Retail',
color: 'lime',
position: 84,
},
{
key: 'revenueOperations',
value: 'REVENUE_OPERATIONS',
label: 'Revenue Operations',
color: 'violet',
position: 85,
},
{
key: 'risk',
value: 'RISK',
label: 'Risk',
color: 'gold',
position: 86,
},
{
key: 'salesDevelopment',
value: 'SALES_DEVELOPMENT',
label: 'Sales Development',
color: 'turquoise',
position: 87,
},
{
key: 'scientific',
value: 'SCIENTIFIC',
label: 'Scientific',
color: 'crimson',
position: 88,
},
{
key: 'security',
value: 'SECURITY',
label: 'Security',
color: 'sky',
position: 89,
},
{
key: 'socialService',
value: 'SOCIAL_SERVICE',
label: 'Social Service',
color: 'amber',
position: 90,
},
{
key: 'software',
value: 'SOFTWARE',
label: 'Software',
color: 'plum',
position: 91,
},
{
key: 'solutionsEngineer',
value: 'SOLUTIONS_ENGINEER',
label: 'Solutions Engineer',
color: 'grass',
position: 92,
},
{
key: 'strategy',
value: 'STRATEGY',
label: 'Strategy',
color: 'tomato',
position: 93,
},
{
key: 'student',
value: 'STUDENT',
label: 'Student',
color: 'iris',
position: 94,
},
{
key: 'talentAnalytics',
value: 'TALENT_ANALYTICS',
label: 'Talent Analytics',
color: 'mint',
position: 95,
},
{
key: 'therapy',
value: 'THERAPY',
label: 'Therapy',
color: 'ruby',
position: 96,
},
{
key: 'tourAndTravel',
value: 'TOUR_AND_TRAVEL',
label: 'Tour and Travel',
color: 'bronze',
position: 97,
},
{
key: 'training',
value: 'TRAINING',
label: 'Training',
color: 'jade',
position: 98,
},
{
key: 'translation',
value: 'TRANSLATION',
label: 'Translation',
color: 'gray',
position: 99,
},
{
key: 'transport',
value: 'TRANSPORT',
label: 'Transport',
color: 'blue',
position: 100,
},
{
key: 'unemployed',
value: 'UNEMPLOYED',
label: 'Unemployed',
color: 'red',
position: 101,
},
{
key: 'veterinarian',
value: 'VETERINARIAN',
label: 'Veterinarian',
color: 'green',
position: 102,
},
{
key: 'warehouse',
value: 'WAREHOUSE',
label: 'Warehouse',
color: 'orange',
position: 103,
},
{
key: 'web',
value: 'WEB',
label: 'Web',
color: 'purple',
position: 104,
},
{
key: 'wellness',
value: 'WELLNESS',
label: 'Wellness',
color: 'yellow',
position: 105,
},
];

View File

@@ -0,0 +1,53 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const LOCATION_CONTINENT_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'africa',
value: 'AFRICA',
label: 'Africa',
color: 'blue',
position: 0,
},
{
key: 'antarctica',
value: 'ANTARCTICA',
label: 'Antarctica',
color: 'red',
position: 1,
},
{
key: 'asia',
value: 'ASIA',
label: 'Asia',
color: 'green',
position: 2,
},
{
key: 'europe',
value: 'EUROPE',
label: 'Europe',
color: 'orange',
position: 3,
},
{
key: 'northAmerica',
value: 'NORTH_AMERICA',
label: 'North America',
color: 'purple',
position: 4,
},
{
key: 'oceania',
value: 'OCEANIA',
label: 'Oceania',
color: 'yellow',
position: 5,
},
{
key: 'southAmerica',
value: 'SOUTH_AMERICA',
label: 'South America',
color: 'pink',
position: 6,
},
];

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,494 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const MIC_EXCHANGE_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'aqse',
value: 'AQSE',
label: 'AQSE',
color: 'blue',
position: 0,
},
{
key: 'arcx',
value: 'ARCX',
label: 'ARCX',
color: 'red',
position: 1,
},
{
key: 'asex',
value: 'ASEX',
label: 'ASEX',
color: 'green',
position: 2,
},
{
key: 'bcxe',
value: 'BCXE',
label: 'BCXE',
color: 'orange',
position: 3,
},
{
key: 'bvmf',
value: 'BVMF',
label: 'BVMF',
color: 'purple',
position: 4,
},
{
key: 'dsmd',
value: 'DSMD',
label: 'DSMD',
color: 'yellow',
position: 5,
},
{
key: 'misx',
value: 'MISX',
label: 'MISX',
color: 'pink',
position: 6,
},
{
key: 'neoe',
value: 'NEOE',
label: 'NEOE',
color: 'cyan',
position: 7,
},
{
key: 'xams',
value: 'XAMS',
label: 'XAMS',
color: 'brown',
position: 8,
},
{
key: 'xase',
value: 'XASE',
label: 'XASE',
color: 'lime',
position: 9,
},
{
key: 'xasx',
value: 'XASX',
label: 'XASX',
color: 'violet',
position: 10,
},
{
key: 'xber',
value: 'XBER',
label: 'XBER',
color: 'gold',
position: 11,
},
{
key: 'xbkk',
value: 'XBKK',
label: 'XBKK',
color: 'turquoise',
position: 12,
},
{
key: 'xbog',
value: 'XBOG',
label: 'XBOG',
color: 'crimson',
position: 13,
},
{
key: 'xbom',
value: 'XBOM',
label: 'XBOM',
color: 'sky',
position: 14,
},
{
key: 'xbru',
value: 'XBRU',
label: 'XBRU',
color: 'amber',
position: 15,
},
{
key: 'xbsp',
value: 'XBSP',
label: 'XBSP',
color: 'plum',
position: 16,
},
{
key: 'xbud',
value: 'XBUD',
label: 'XBUD',
color: 'grass',
position: 17,
},
{
key: 'xbue',
value: 'XBUE',
label: 'XBUE',
color: 'tomato',
position: 18,
},
{
key: 'xcai',
value: 'XCAI',
label: 'XCAI',
color: 'iris',
position: 19,
},
{
key: 'xcbo',
value: 'XCBO',
label: 'XCBO',
color: 'mint',
position: 20,
},
{
key: 'xcnq',
value: 'XCNQ',
label: 'XCNQ',
color: 'ruby',
position: 21,
},
{
key: 'xcse',
value: 'XCSE',
label: 'XCSE',
color: 'bronze',
position: 22,
},
{
key: 'xdfm',
value: 'XDFM',
label: 'XDFM',
color: 'jade',
position: 23,
},
{
key: 'xdub',
value: 'XDUB',
label: 'XDUB',
color: 'gray',
position: 24,
},
{
key: 'xdus',
value: 'XDUS',
label: 'XDUS',
color: 'blue',
position: 25,
},
{
key: 'xeqy',
value: 'XEQY',
label: 'XEQY',
color: 'red',
position: 26,
},
{
key: 'xfra',
value: 'XFRA',
label: 'XFRA',
color: 'green',
position: 27,
},
{
key: 'xham',
value: 'XHAM',
label: 'XHAM',
color: 'orange',
position: 28,
},
{
key: 'xhel',
value: 'XHEL',
label: 'XHEL',
color: 'purple',
position: 29,
},
{
key: 'xhkg',
value: 'XHKG',
label: 'XHKG',
color: 'yellow',
position: 30,
},
{
key: 'xice',
value: 'XICE',
label: 'XICE',
color: 'pink',
position: 31,
},
{
key: 'xidx',
value: 'XIDX',
label: 'XIDX',
color: 'cyan',
position: 32,
},
{
key: 'xjpx',
value: 'XJPX',
label: 'XJPX',
color: 'brown',
position: 33,
},
{
key: 'xjse',
value: 'XJSE',
label: 'XJSE',
color: 'lime',
position: 34,
},
{
key: 'xkls',
value: 'XKLS',
label: 'XKLS',
color: 'violet',
position: 35,
},
{
key: 'xkos',
value: 'XKOS',
label: 'XKOS',
color: 'gold',
position: 36,
},
{
key: 'xkrx',
value: 'XKRX',
label: 'XKRX',
color: 'turquoise',
position: 37,
},
{
key: 'xkuw',
value: 'XKUW',
label: 'XKUW',
color: 'crimson',
position: 38,
},
{
key: 'xlis',
value: 'XLIS',
label: 'XLIS',
color: 'sky',
position: 39,
},
{
key: 'xlon',
value: 'XLON',
label: 'XLON',
color: 'amber',
position: 40,
},
{
key: 'xmad',
value: 'XMAD',
label: 'XMAD',
color: 'plum',
position: 41,
},
{
key: 'xmex',
value: 'XMEX',
label: 'XMEX',
color: 'grass',
position: 42,
},
{
key: 'xmil',
value: 'XMIL',
label: 'XMIL',
color: 'tomato',
position: 43,
},
{
key: 'xmun',
value: 'XMUN',
label: 'XMUN',
color: 'iris',
position: 44,
},
{
key: 'xnas',
value: 'XNAS',
label: 'XNAS',
color: 'mint',
position: 45,
},
{
key: 'xnse',
value: 'XNSE',
label: 'XNSE',
color: 'ruby',
position: 46,
},
{
key: 'xnys',
value: 'XNYS',
label: 'XNYS',
color: 'bronze',
position: 47,
},
{
key: 'xnze',
value: 'XNZE',
label: 'XNZE',
color: 'jade',
position: 48,
},
{
key: 'xosl',
value: 'XOSL',
label: 'XOSL',
color: 'gray',
position: 49,
},
{
key: 'xotc',
value: 'XOTC',
label: 'XOTC',
color: 'blue',
position: 50,
},
{
key: 'xpar',
value: 'XPAR',
label: 'XPAR',
color: 'red',
position: 51,
},
{
key: 'xpra',
value: 'XPRA',
label: 'XPRA',
color: 'green',
position: 52,
},
{
key: 'xris',
value: 'XRIS',
label: 'XRIS',
color: 'orange',
position: 53,
},
{
key: 'xsau',
value: 'XSAU',
label: 'XSAU',
color: 'purple',
position: 54,
},
{
key: 'xses',
value: 'XSES',
label: 'XSES',
color: 'yellow',
position: 55,
},
{
key: 'xsgo',
value: 'XSGO',
label: 'XSGO',
color: 'pink',
position: 56,
},
{
key: 'xshe',
value: 'XSHE',
label: 'XSHE',
color: 'cyan',
position: 57,
},
{
key: 'xshg',
value: 'XSHG',
label: 'XSHG',
color: 'brown',
position: 58,
},
{
key: 'xstc',
value: 'XSTC',
label: 'XSTC',
color: 'lime',
position: 59,
},
{
key: 'xsto',
value: 'XSTO',
label: 'XSTO',
color: 'violet',
position: 60,
},
{
key: 'xstu',
value: 'XSTU',
label: 'XSTU',
color: 'gold',
position: 61,
},
{
key: 'xswx',
value: 'XSWX',
label: 'XSWX',
color: 'turquoise',
position: 62,
},
{
key: 'xtae',
value: 'XTAE',
label: 'XTAE',
color: 'crimson',
position: 63,
},
{
key: 'xtai',
value: 'XTAI',
label: 'XTAI',
color: 'sky',
position: 64,
},
{
key: 'xtal',
value: 'XTAL',
label: 'XTAL',
color: 'amber',
position: 65,
},
{
key: 'xtse',
value: 'XTSE',
label: 'XTSE',
color: 'plum',
position: 66,
},
{
key: 'xtsx',
value: 'XTSX',
label: 'XTSX',
color: 'grass',
position: 67,
},
{
key: 'xwar',
value: 'XWAR',
label: 'XWAR',
color: 'tomato',
position: 68,
},
{
key: 'xwbo',
value: 'XWBO',
label: 'XWBO',
color: 'iris',
position: 69,
},
];

View File

@@ -0,0 +1 @@
export const MICRO_CREDITS_PER_DOLLAR = 1_000_000;

View File

@@ -0,0 +1 @@
export const PDL_BASE_URL = 'https://api.peopledatalabs.com/v5';

View File

@@ -0,0 +1 @@
export const PERSON_MATCH_COST_DOLLARS = 0.28;

View File

@@ -0,0 +1,74 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const SENIORITY_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'cxo',
value: 'CXO',
label: 'CXO',
color: 'blue',
position: 0,
},
{
key: 'owner',
value: 'OWNER',
label: 'Owner',
color: 'red',
position: 1,
},
{
key: 'vp',
value: 'VP',
label: 'VP',
color: 'green',
position: 2,
},
{
key: 'director',
value: 'DIRECTOR',
label: 'Director',
color: 'orange',
position: 3,
},
{
key: 'partner',
value: 'PARTNER',
label: 'Partner',
color: 'purple',
position: 4,
},
{
key: 'senior',
value: 'SENIOR',
label: 'Senior',
color: 'yellow',
position: 5,
},
{
key: 'manager',
value: 'MANAGER',
label: 'Manager',
color: 'pink',
position: 6,
},
{
key: 'entry',
value: 'ENTRY',
label: 'Entry',
color: 'cyan',
position: 7,
},
{
key: 'training',
value: 'TRAINING',
label: 'Training',
color: 'brown',
position: 8,
},
{
key: 'unpaid',
value: 'UNPAID',
label: 'Unpaid',
color: 'lime',
position: 9,
},
];

View File

@@ -0,0 +1,18 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const SEX_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'male',
value: 'MALE',
label: 'Male',
color: 'blue',
position: 0,
},
{
key: 'female',
value: 'FEMALE',
label: 'Female',
color: 'red',
position: 1,
},
];

View File

@@ -0,0 +1,60 @@
import { type SelectOptionMeta } from 'src/types/select-option-meta';
export const SIZE_OPTIONS: readonly SelectOptionMeta[] = [
{
key: 'oneToTen',
value: 'ONE_TO_TEN',
label: '1-10',
color: 'blue',
position: 0,
},
{
key: 'elevenToFifty',
value: 'ELEVEN_TO_FIFTY',
label: '11-50',
color: 'red',
position: 1,
},
{
key: 'fiftyOneToTwoHundred',
value: 'FIFTY_ONE_TO_TWO_HUNDRED',
label: '51-200',
color: 'green',
position: 2,
},
{
key: 'twoHundredOneToFiveHundred',
value: 'TWO_HUNDRED_ONE_TO_FIVE_HUNDRED',
label: '201-500',
color: 'orange',
position: 3,
},
{
key: 'fiveHundredOneToOneThousand',
value: 'FIVE_HUNDRED_ONE_TO_ONE_THOUSAND',
label: '501-1000',
color: 'purple',
position: 4,
},
{
key: 'oneThousandOneToFiveThousand',
value: 'ONE_THOUSAND_ONE_TO_FIVE_THOUSAND',
label: '1001-5000',
color: 'yellow',
position: 5,
},
{
key: 'fiveThousandOneToTenThousand',
value: 'FIVE_THOUSAND_ONE_TO_TEN_THOUSAND',
label: '5001-10000',
color: 'pink',
position: 6,
},
{
key: 'tenThousandOnePlus',
value: 'TEN_THOUSAND_ONE_PLUS',
label: '10001+',
color: 'cyan',
position: 7,
},
];

View File

@@ -0,0 +1,5 @@
import { UPDATE_FIELDS_OPTIONS } from 'src/constants/update-fields-options';
import { type UpdateFieldsOption } from 'src/types/update-fields-option';
export const UPDATE_FIELDS_OPTION_VALUES: UpdateFieldsOption[] =
Object.values(UPDATE_FIELDS_OPTIONS);

View File

@@ -0,0 +1,7 @@
import { type UpdateFieldsOption } from 'src/types/update-fields-option';
export const UPDATE_FIELDS_OPTIONS = {
overwrite: 'Yes and overwrite',
fillEmpty: "Yes and don't overwrite",
no: 'No',
} as const satisfies Record<string, UpdateFieldsOption>;

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlAffiliatedProfiles,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.ARRAY,
name: 'pdlAffiliatedProfiles',
label: 'Profiles',
description: 'Web and social profile URLs returned by People Data Labs.',
icon: 'IconWorldWww',
isNullable: true,
});

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlAlternativeDomains,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.ARRAY,
name: 'pdlAlternativeDomains',
label: 'Alternative Domains',
description: 'Alternative domains returned by People Data Labs.',
icon: 'IconWorldWww',
isNullable: true,
});

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlAlternativeNames,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.ARRAY,
name: 'pdlAlternativeNames',
label: 'Alternative Names',
description: 'Alternative names returned by People Data Labs.',
icon: 'IconSignature',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { COMPANY_TYPE_OPTIONS } from 'src/constants/company-type-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlCompanyType,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlCompanyType',
label: 'Company Type',
description: 'People Data Labs canonical company type.',
icon: 'IconBuildingCommunity',
isNullable: true,
options: buildSelectOptions({
meta: COMPANY_TYPE_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyType,
}),
});

View File

@@ -0,0 +1,21 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlEmployeeCountByCountry,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlEmployeeCountByCountry',
label: 'Employee Count by Country',
description:
'Employee count broken down by country returned by People Data Labs.',
icon: 'IconMapPins',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlEmployeeCount,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.NUMBER,
name: 'pdlEmployeeCount',
label: 'Employees',
description: 'Exact employee count returned by People Data Labs.',
icon: 'IconUsersGroup',
isNullable: true,
});

View File

@@ -0,0 +1,29 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { ENRICHMENT_STATUS_OPTIONS } from 'src/constants/enrichment-status-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlEnrichmentStatus,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlEnrichmentStatus',
label: 'Enrichment Status',
description: 'Outcome of the latest People Data Labs enrichment attempt.',
icon: 'IconProgressCheck',
isNullable: true,
options: buildSelectOptions({
meta: ENRICHMENT_STATUS_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyEnrichmentStatus,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlFacebookUrl,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.LINKS,
name: 'pdlFacebookUrl',
label: 'Facebook',
description: 'Facebook page returned by People Data Labs.',
icon: 'IconBrandFacebook',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlFoundedYear,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.NUMBER,
name: 'pdlFoundedYear',
label: 'Founded Year',
description: 'Founding year returned by People Data Labs.',
icon: 'IconFlag',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { FUNDING_STAGE_OPTIONS } from 'src/constants/funding-stage-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlFundingStages,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.MULTI_SELECT,
name: 'pdlFundingStages',
label: 'Funding Stages',
description: 'People Data Labs canonical funding stages.',
icon: 'IconChartArrowsVertical',
isNullable: true,
options: buildSelectOptions({
meta: FUNDING_STAGE_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyFundingStages,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlHeadline,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlHeadline',
label: 'Headline',
description: 'People Data Labs company headline or summary.',
icon: 'IconQuote',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlId,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlId',
label: 'PDL ID',
description: 'People Data Labs company identifier.',
icon: 'IconId',
isNullable: true,
});

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlIndustryDetail,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlIndustryDetail',
label: 'Industry (detailed)',
description: 'Detailed People Data Labs industry v2 value.',
icon: 'IconBuildingFactory',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { INDUSTRY_OPTIONS } from 'src/constants/industry-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlIndustry,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlIndustry',
label: 'Industry',
description: 'People Data Labs canonical industry.',
icon: 'IconBuildingFactory2',
isNullable: true,
options: buildSelectOptions({
meta: INDUSTRY_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyIndustry,
}),
});

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLastEnrichedAt,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.DATE_TIME,
name: 'pdlLastEnrichedAt',
label: 'Last Enriched At',
description: 'Timestamp of the latest People Data Labs enrichment.',
icon: 'IconClock',
isNullable: true,
});

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLastFundingDate,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.DATE,
name: 'pdlLastFundingDate',
label: 'Last Funding Date',
description: 'Date of the latest funding round returned by People Data Labs.',
icon: 'IconCalendar',
isNullable: true,
});

View File

@@ -0,0 +1,29 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { FUNDING_STAGE_OPTIONS } from 'src/constants/funding-stage-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLatestFundingStage,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlLatestFundingStage',
label: 'Latest Funding Stage',
description: 'People Data Labs canonical latest funding stage.',
icon: 'IconTrendingUp',
isNullable: true,
options: buildSelectOptions({
meta: FUNDING_STAGE_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLatestFundingStage,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLegalName,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlLegalName',
label: 'Legal Name',
description: 'Registered legal entity name returned by People Data Labs.',
icon: 'IconBuildingBank',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLinkedinId,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlLinkedinId',
label: 'LinkedIn ID',
description: 'LinkedIn identifier returned by People Data Labs.',
icon: 'IconBrandLinkedin',
isNullable: true,
});

View File

@@ -0,0 +1,29 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { LOCATION_CONTINENT_OPTIONS } from 'src/constants/location-continent-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLocationContinent,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlLocationContinent',
label: 'Continent',
description: 'People Data Labs canonical continent.',
icon: 'IconGlobe',
isNullable: true,
options: buildSelectOptions({
meta: LOCATION_CONTINENT_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationContinent,
}),
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { METRO_OPTIONS } from 'src/constants/metro-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlLocationMetro,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlLocationMetro',
label: 'Metro Area',
description: 'People Data Labs canonical metro area.',
icon: 'IconMap2',
isNullable: true,
options: buildSelectOptions({
meta: METRO_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyLocationMetro,
}),
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { MIC_EXCHANGE_OPTIONS } from 'src/constants/mic-exchange-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlMicExchange,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlMicExchange',
label: 'Stock Exchange (MIC)',
description: 'People Data Labs canonical market identifier code.',
icon: 'IconBuildingBank',
isNullable: true,
options: buildSelectOptions({
meta: MIC_EXCHANGE_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.companyMicExchange,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlNaics,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlNaics',
label: 'NAICS Codes',
description: 'NAICS classification codes returned by People Data Labs.',
icon: 'IconNumbers',
isNullable: true,
});

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlNumberFundingRounds,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.NUMBER,
name: 'pdlNumberFundingRounds',
label: 'Number of Funding Rounds',
description: 'Number of funding rounds returned by People Data Labs.',
icon: 'IconCoins',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlRawPayload,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlRawPayload',
label: 'PDL Raw Payload',
description: 'Full People Data Labs company enrichment response.',
icon: 'IconBraces',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlSic,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlSic',
label: 'SIC Codes',
description: 'SIC classification codes returned by People Data Labs.',
icon: 'IconHash',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { SIZE_OPTIONS } from 'src/constants/size-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlSizeRange,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlSizeRange',
label: 'Employee Range',
description: 'People Data Labs canonical self-reported employee range.',
icon: 'IconChartBar',
isNullable: true,
options: buildSelectOptions({
meta: SIZE_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.sizeRange,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlSummary,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlSummary',
label: 'Summary',
description: 'Company summary returned by People Data Labs.',
icon: 'IconFileText',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlTags,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.ARRAY,
name: 'pdlTags',
label: 'Tags',
description: 'Tags returned by People Data Labs.',
icon: 'IconTags',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlTicker,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlTicker',
label: 'Ticker',
description: 'Company ticker returned by People Data Labs.',
icon: 'IconChartCandle',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlTotalFunding,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.CURRENCY,
name: 'pdlTotalFunding',
label: 'Total Funding Raised',
description: 'Total funding raised in USD returned by People Data Labs.',
icon: 'IconReportMoney',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.company.pdlTwitterUrl,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
type: FieldType.LINKS,
name: 'pdlTwitterUrl',
label: 'X / Twitter',
description: 'X or Twitter company profile returned by People Data Labs.',
icon: 'IconBrandX',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlBirthDate,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.DATE,
name: 'pdlBirthDate',
label: 'Birth Date',
description: 'Birth date returned by People Data Labs.',
icon: 'IconCake',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlBirthYear,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.NUMBER,
name: 'pdlBirthYear',
label: 'Birth Year',
description: 'Birth year returned by People Data Labs.',
icon: 'IconCalendar',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlCertifications,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlCertifications',
label: 'Certifications',
description: 'Certifications returned by People Data Labs.',
icon: 'IconCertificate',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlEducation,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlEducation',
label: 'Education History',
description: 'Education history returned by People Data Labs.',
icon: 'IconSchool',
isNullable: true,
});

View File

@@ -0,0 +1,29 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { ENRICHMENT_STATUS_OPTIONS } from 'src/constants/enrichment-status-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlEnrichmentStatus,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlEnrichmentStatus',
label: 'Enrichment Status',
description: 'Outcome of the latest People Data Labs enrichment attempt.',
icon: 'IconProgressCheck',
isNullable: true,
options: buildSelectOptions({
meta: ENRICHMENT_STATUS_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personEnrichmentStatus,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlExperience,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlExperience',
label: 'Experience History',
description: 'Experience history returned by People Data Labs.',
icon: 'IconTimeline',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlFacebookUrl,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.LINKS,
name: 'pdlFacebookUrl',
label: 'Facebook',
description: 'Facebook profile returned by People Data Labs.',
icon: 'IconBrandFacebook',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlGithubUrl,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.LINKS,
name: 'pdlGithubUrl',
label: 'GitHub',
description: 'GitHub profile returned by People Data Labs.',
icon: 'IconBrandGithub',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlHeadline,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlHeadline',
label: 'Headline',
description: 'People Data Labs person headline or job summary.',
icon: 'IconQuote',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlId,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlId',
label: 'PDL ID',
description: 'People Data Labs person identifier.',
icon: 'IconId',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { INDUSTRY_OPTIONS } from 'src/constants/industry-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlIndustry,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlIndustry',
label: 'Industry',
description: 'People Data Labs canonical industry.',
icon: 'IconBuildingFactory2',
isNullable: true,
options: buildSelectOptions({
meta: INDUSTRY_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personIndustry,
}),
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { INFERRED_SALARY_OPTIONS } from 'src/constants/inferred-salary-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlInferredSalary,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlInferredSalary',
label: 'Inferred Salary (range)',
description: 'People Data Labs canonical inferred salary range.',
icon: 'IconCurrencyDollar',
isNullable: true,
options: buildSelectOptions({
meta: INFERRED_SALARY_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personInferredSalary,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlInterests,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.ARRAY,
name: 'pdlInterests',
label: 'Interests',
description: 'Interests returned by People Data Labs.',
icon: 'IconHeart',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobOnetCode,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlJobOnetCode',
label: 'O*NET Code',
description: 'O*NET occupation code returned by People Data Labs.',
icon: 'IconBarcode',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { JOB_ROLE_OPTIONS } from 'src/constants/job-role-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobRole,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlJobRole',
label: 'Job Role',
description: 'People Data Labs canonical job title role.',
icon: 'IconBriefcase',
isNullable: true,
options: buildSelectOptions({
meta: JOB_ROLE_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.jobRole,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobStartDate,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.DATE,
name: 'pdlJobStartDate',
label: 'Job Start Date',
description: 'Current job start date returned by People Data Labs.',
icon: 'IconCalendarTime',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobSummary,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlJobSummary',
label: 'Job Summary',
description: 'Current job summary returned by People Data Labs.',
icon: 'IconFileDescription',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { JOB_TITLE_CLASS_OPTIONS } from 'src/constants/job-title-class-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobTitleClass,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlJobTitleClass',
label: 'Job Class',
description: 'People Data Labs canonical job class.',
icon: 'IconCategory',
isNullable: true,
options: buildSelectOptions({
meta: JOB_TITLE_CLASS_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobClass,
}),
});

View File

@@ -0,0 +1,29 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { JOB_TITLE_SUB_ROLE_OPTIONS } from 'src/constants/job-title-sub-role-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlJobTitleSubRole,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlJobTitleSubRole',
label: 'Job Sub-Role',
description: 'People Data Labs canonical job sub-role.',
icon: 'IconSubtask',
isNullable: true,
options: buildSelectOptions({
meta: JOB_TITLE_SUB_ROLE_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personJobSubRole,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLanguages,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlLanguages',
label: 'Languages',
description: 'Languages returned by People Data Labs.',
icon: 'IconLanguage',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLastEnrichedAt,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.DATE_TIME,
name: 'pdlLastEnrichedAt',
label: 'Last Enriched At',
description: 'Timestamp of the latest People Data Labs enrichment.',
icon: 'IconClock',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLikelihood,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.NUMBER,
name: 'pdlLikelihood',
label: 'Match Likelihood',
description: 'People Data Labs match confidence score (1-10).',
icon: 'IconGauge',
isNullable: true,
});

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLinkedinConnections,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.NUMBER,
name: 'pdlLinkedinConnections',
label: 'LinkedIn Connections',
description: 'LinkedIn connection count returned by People Data Labs.',
icon: 'IconAffiliate',
isNullable: true,
});

View File

@@ -0,0 +1,20 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier:
PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLinkedinUsername,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.TEXT,
name: 'pdlLinkedinUsername',
label: 'LinkedIn Username',
description: 'LinkedIn username returned by People Data Labs.',
icon: 'IconBrandLinkedin',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { METRO_OPTIONS } from 'src/constants/metro-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLocationMetro,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlLocationMetro',
label: 'Metro Area',
description: 'People Data Labs canonical metro area.',
icon: 'IconMap2',
isNullable: true,
options: buildSelectOptions({
meta: METRO_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.personLocationMetro,
}),
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlLocation,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.ADDRESS,
name: 'pdlLocation',
label: 'Location',
description: 'Location returned by People Data Labs.',
icon: 'IconMapPin',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlNameAliases,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.ARRAY,
name: 'pdlNameAliases',
label: 'Name Aliases',
description: 'Name aliases returned by People Data Labs.',
icon: 'IconSignature',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlProfiles,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlProfiles',
label: 'Social Profiles',
description: 'All social profiles returned by People Data Labs.',
icon: 'IconUserCircle',
isNullable: true,
});

View File

@@ -0,0 +1,19 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { PDL_FIELD_UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlRawPayload,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.RAW_JSON,
name: 'pdlRawPayload',
label: 'PDL Raw Payload',
description: 'Full People Data Labs person enrichment response.',
icon: 'IconBraces',
isNullable: true,
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { SENIORITY_OPTIONS } from 'src/constants/seniority-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlSeniority,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.MULTI_SELECT,
name: 'pdlSeniority',
label: 'Seniority',
description: 'People Data Labs canonical job title levels.',
icon: 'IconStairsUp',
isNullable: true,
options: buildSelectOptions({
meta: SENIORITY_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.seniority,
}),
});

View File

@@ -0,0 +1,28 @@
import {
defineField,
FieldType,
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { SEX_OPTIONS } from 'src/constants/sex-options';
import {
PDL_FIELD_UNIVERSAL_IDENTIFIERS,
PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS,
} from 'src/constants/universal-identifiers';
import { buildSelectOptions } from 'src/utils/build-select-options';
export default defineField({
universalIdentifier: PDL_FIELD_UNIVERSAL_IDENTIFIERS.person.pdlSex,
objectUniversalIdentifier:
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
type: FieldType.SELECT,
name: 'pdlSex',
label: 'Sex',
description: 'Sex returned by People Data Labs.',
icon: 'IconGenderBigender',
isNullable: true,
options: buildSelectOptions({
meta: SEX_OPTIONS,
ids: PDL_SELECT_OPTION_UNIVERSAL_IDENTIFIERS.sex,
}),
});

Some files were not shown because too many files have changed in this diff Show More