Skip to main content
Glama
companies.ts2.76 kB
/** * Company field mappings and validation rules * Extracted from field-mapper.ts during Issue #529 modular refactoring */ import { FieldMapping } from '../types.js'; import { createDisplayNameConstants, createPluralMappingConstants, validateFieldMappingConstants, } from '../utils/field-mapping-constants.js'; // Display name constants for better maintainability (Issue #720) const DISPLAY_NAMES = createDisplayNameConstants({ COMPANY_NAME: 'company name', COMPANY_DOMAIN: 'company domain', COMPANY_TYPE: 'company type', FOUNDED_DATE: 'founded date', }); // Plural to singular mapping pattern (Issue #720) const PLURAL_MAPPINGS = createPluralMappingConstants({ websites: 'domains', urls: 'domains', domains: 'domains', // Keep for consistency }); // Validate constants for consistency const validation = validateFieldMappingConstants( DISPLAY_NAMES, PLURAL_MAPPINGS ); if (!validation.valid) { console.warn( 'Companies field mapping constants validation issues:', validation.issues ); } /** * Field mapping configuration for companies resource type */ export const COMPANIES_FIELD_MAPPING: FieldMapping = { fieldMappings: { // Display names from discover-attributes [DISPLAY_NAMES.COMPANY_NAME]: 'name', [DISPLAY_NAMES.COMPANY_DOMAIN]: 'domains', [DISPLAY_NAMES.COMPANY_TYPE]: 'type', [DISPLAY_NAMES.FOUNDED_DATE]: 'founded', // Common incorrect field names -> correct ones website: 'domains', url: 'domains', company_name: 'name', company_domain: 'domains', primary_domain: 'domains', ...PLURAL_MAPPINGS, // Use consolidated plural mappings // Note: Companies have a 'description' field - don't map to 'notes' note: 'description', size: 'estimated_arr', revenue: 'estimated_arr', // Remove harmful mappings that break valid fields // typpe: 'type', // Don't map - 'typpe' is a valid field in Attio company_type: 'type', founded_date: 'founded', founding_date: 'founded', year_founded: 'founded', }, validFields: [ 'name', 'domains', 'type', 'typpe', 'industry', 'categories', 'description', 'founded', 'estimated_arr', 'employee_count', 'location', 'notes', 'primary_domain', 'twitter', 'linkedin', 'facebook', ], commonMistakes: { domain: 'Use "domains" (plural) as an array, e.g., domains: ["example.com"]', website: 'Use "domains" field with an array of domain names', notes: 'Notes are separate objects linked to companies, not company attributes. Use "description" field for company descriptions', revenue: 'Use "estimated_arr" for revenue/ARR data', }, requiredFields: ['name'], uniqueFields: ['domains'], };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kesslerio/attio-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server