Objects
Objects
Outrun standardizes all data into four universal object types that represent the fundamental building blocks of business data. These objects enable seamless data synchronization across different systems regardless of their native data formats.
π§© Universal Data Model
Rather than forcing complex custom mappings, Outrun uses four standardized objects that represent how businesses naturally think about their data - making integration intuitive and reliable.
The Four Object Types
π€ People
Individual humans in your business ecosystem
- β’ Contacts, Leads, Users
- β’ Customers, Prospects
- β’ Team Members, Authors
- β’ Anyone with personal identity
π’ Organizations
Companies and business entities
- β’ Companies, Accounts
- β’ Customers, Prospects
- β’ Partners, Vendors
- β’ Any business entity
π Facts
Measurable data points and metrics
- β’ Analytics data, KPIs
- β’ Performance metrics
- β’ Search console data
- β’ Quantifiable measurements
π Relationships
Connections between other objects
- β’ Person-to-Organization links
- β’ Hierarchical structures
- β’ Business relationships
- β’ Association mappings
People Objects
People represent individual humans across all your systems, providing a unified view of contacts, leads, users, and team members.
Core Schema
{
"type": "Person",
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"fullName": "John Doe",
"phone": "+1-555-0123",
"jobTitle": "Marketing Manager",
"company": "Acme Corp",
"department": "Marketing",
"location": "San Francisco, CA",
"linkedInUrl": "https://linkedin.com/in/johndoe",
"twitterHandle": "@johndoe",
"website": "https://johndoe.com",
"tags": ["customer", "enterprise"],
"customFields": {
"leadScore": 85,
"industry": "Technology"
},
"sourceId": "hubspot_abc123",
"sourceObjectId": "12345",
"sourceObjectType": "contact",
"qualityScore": 0.95,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T14:22:00Z"
}
Source System Mappings
HubSpot β People
// HubSpot Contact
{
"vid": 12345,
"properties": {
"email": "john@acme.com",
"firstname": "John",
"lastname": "Doe",
"jobtitle": "Marketing Manager",
"company": "Acme Corp",
"phone": "+1-555-0123"
}
}
// Becomes Person Object
{
"type": "Person",
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"jobTitle": "Marketing Manager",
"company": "Acme Corp",
"phone": "+1-555-0123"
}
Salesforce β People
// Salesforce Lead
{
"Id": "00Q000000123456",
"Email": "jane@startup.com",
"FirstName": "Jane",
"LastName": "Smith",
"Company": "Startup Inc",
"Title": "CEO"
}
// Becomes Person Object
{
"type": "Person",
"email": "jane@startup.com",
"firstName": "Jane",
"lastName": "Smith",
"company": "Startup Inc",
"jobTitle": "CEO"
}
Zoho CRM β People
// Zoho Contact
{
"Email": "mike@enterprise.com",
"First_Name": "Mike",
"Last_Name": "Johnson",
"Account_Name": "Enterprise Solutions",
"Title": "VP Sales"
}
// Becomes Person Object
{
"type": "Person",
"email": "mike@enterprise.com",
"firstName": "Mike",
"lastName": "Johnson",
"company": "Enterprise Solutions",
"jobTitle": "VP Sales"
}
Destination System Mappings
People β HubSpot Contacts
// Person Object
{
"type": "Person",
"email": "sarah@newco.com",
"firstName": "Sarah",
"lastName": "Wilson",
"jobTitle": "Product Manager"
}
// Becomes HubSpot Contact
{
"properties": {
"email": "sarah@newco.com",
"firstname": "Sarah",
"lastname": "Wilson",
"jobtitle": "Product Manager",
"hs_lead_status": "NEW",
"lifecyclestage": "lead"
}
}
People β Salesforce Leads/Contacts
// Person Object (New Lead)
{
"type": "Person",
"email": "alex@prospect.com",
"firstName": "Alex",
"lastName": "Chen",
"company": "Prospect Corp"
}
// Becomes Salesforce Lead
{
"Email": "alex@prospect.com",
"FirstName": "Alex",
"LastName": "Chen",
"Company": "Prospect Corp",
"LeadSource": "Outrun",
"Status": "Open - Not Contacted"
}
Organizations Objects
Organizations represent companies, accounts, and business entities across all your systems.
Core Schema
{
"type": "Organization",
"name": "Acme Corporation",
"domain": "acme.com",
"website": "https://acme.com",
"industry": "Technology",
"size": "500-1000 employees",
"revenue": 50000000,
"location": "San Francisco, CA",
"address": {
"street": "123 Market Street",
"city": "San Francisco",
"state": "CA",
"postalCode": "94105",
"country": "United States"
},
"phone": "+1-555-0456",
"description": "Leading technology solutions provider",
"foundedYear": 2010,
"tags": ["enterprise", "technology"],
"customFields": {
"accountTier": "Enterprise",
"contractValue": 250000
},
"sourceId": "salesforce_def456",
"sourceObjectId": "001000000234567",
"sourceObjectType": "Account",
"qualityScore": 0.92,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T16:45:00Z"
}
Source System Mappings
HubSpot β Organizations
// HubSpot Company
{
"companyId": 67890,
"properties": {
"name": "Tech Innovations Ltd",
"domain": "techinnovations.com",
"industry": "Software",
"numberofemployees": "250",
"annualrevenue": "25000000"
}
}
// Becomes Organization Object
{
"type": "Organization",
"name": "Tech Innovations Ltd",
"domain": "techinnovations.com",
"industry": "Software",
"size": "250",
"revenue": 25000000
}
Salesforce β Organizations
// Salesforce Account
{
"Id": "001000000345678",
"Name": "Global Enterprises Inc",
"Website": "https://globalenterprises.com",
"Industry": "Manufacturing",
"NumberOfEmployees": 5000,
"AnnualRevenue": 500000000
}
// Becomes Organization Object
{
"type": "Organization",
"name": "Global Enterprises Inc",
"website": "https://globalenterprises.com",
"industry": "Manufacturing",
"size": "5000",
"revenue": 500000000
}
Destination System Mappings
Organizations β Salesforce Accounts
// Organization Object
{
"type": "Organization",
"name": "Future Systems Corp",
"website": "https://futuresystems.com",
"industry": "Technology",
"revenue": 75000000
}
// Becomes Salesforce Account
{
"Name": "Future Systems Corp",
"Website": "https://futuresystems.com",
"Industry": "Technology",
"AnnualRevenue": 75000000,
"Type": "Prospect",
"AccountSource": "Outrun"
}
Facts Objects
Facts represent measurable data points, metrics, and analytics from various systems.
Core Schema
{
"type": "Facts",
"metric": "organic_clicks",
"value": 1250,
"unit": "clicks",
"dimension": {
"query": "data synchronization",
"page": "/products/data-sync",
"country": "United States",
"device": "desktop"
},
"timestamp": "2024-01-15T00:00:00Z",
"period": "daily",
"source": "Google Search Console",
"category": "search_performance",
"tags": ["organic", "search", "traffic"],
"metadata": {
"position": 3.2,
"impressions": 5420,
"ctr": 0.23
},
"sourceId": "gsc_ghi789",
"sourceObjectId": "query_12345",
"sourceObjectType": "search_analytics",
"createdAt": "2024-01-15T06:00:00Z"
}
Source System Mappings
Google Search Console β Facts
// GSC Search Analytics
{
"keys": ["data synchronization"],
"clicks": 1250,
"impressions": 5420,
"ctr": 0.23,
"position": 3.2,
"date": "2024-01-15"
}
// Becomes Multiple Facts Objects
[
{
"type": "Facts",
"metric": "organic_clicks",
"value": 1250,
"dimension": {"query": "data synchronization"},
"timestamp": "2024-01-15T00:00:00Z"
},
{
"type": "Facts",
"metric": "organic_impressions",
"value": 5420,
"dimension": {"query": "data synchronization"},
"timestamp": "2024-01-15T00:00:00Z"
}
]
HubSpot β Facts (Analytics)
// HubSpot Deal
{
"dealId": 98765,
"properties": {
"amount": 50000,
"dealstage": "closedwon",
"closedate": "2024-01-15",
"dealtype": "New Business"
}
}
// Becomes Facts Object
{
"type": "Facts",
"metric": "deal_value",
"value": 50000,
"unit": "USD",
"dimension": {
"stage": "closedwon",
"type": "New Business"
},
"timestamp": "2024-01-15T00:00:00Z",
"category": "sales_performance"
}
Destination System Mappings
Facts are typically used for analytics and reporting rather than being written back to operational systems. However, they can be delivered to:
- Analytics Platforms: Tableau, Power BI, Looker
- Data Warehouses: Snowflake, BigQuery, Redshift
- Business Intelligence Tools: Custom dashboards and reports
Relationships Objects
Relationships represent connections between People and Organizations, maintaining the context of how entities are related.
Core Schema
{
"type": "Relationships",
"fromType": "Person",
"fromId": "john@acme.com",
"toType": "Organization",
"toId": "acme.com",
"relationshipType": "employee",
"strength": 0.95,
"verified": true,
"startDate": "2022-03-15T00:00:00Z",
"endDate": null,
"metadata": {
"department": "Marketing",
"role": "Manager",
"reportingStructure": "direct"
},
"sourceId": "hubspot_abc123",
"sourceObjectId": "association_456789",
"sourceObjectType": "contact_to_company",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
Source System Mappings
HubSpot β Relationships
// HubSpot Contact-Company Association
{
"contactId": 12345,
"companyId": 67890,
"associationType": "CONTACT_TO_COMPANY"
}
// Plus Contact Data
{
"email": "john@acme.com",
"jobtitle": "Marketing Manager"
}
// Plus Company Data
{
"domain": "acme.com",
"name": "Acme Corp"
}
// Becomes Relationship Object
{
"type": "Relationships",
"fromType": "Person",
"fromId": "john@acme.com",
"toType": "Organization",
"toId": "acme.com",
"relationshipType": "employee",
"metadata": {
"jobTitle": "Marketing Manager"
}
}
Salesforce β Relationships
// Salesforce Contact with Account
{
"Contact": {
"Id": "003000000123456",
"Email": "sarah@enterprise.com",
"AccountId": "001000000234567"
},
"Account": {
"Id": "001000000234567",
"Name": "Enterprise Solutions",
"Website": "enterprise.com"
}
}
// Becomes Relationship Object
{
"type": "Relationships",
"fromType": "Person",
"fromId": "sarah@enterprise.com",
"toType": "Organization",
"toId": "enterprise.com",
"relationshipType": "contact",
"verified": true
}
Relationship Types
Common Relationship Types
- employee: Person works for Organization
- contact: Person is a contact at Organization
- customer: Person/Organization is a customer
- prospect: Person/Organization is a potential customer
- partner: Business partnership relationship
- vendor: Supplier relationship
- consultant: Professional services relationship
Relationship Strength
Relationships include a strength score (0-1) indicating confidence:
- 1.0: Explicitly defined in source system
- 0.8-0.9: Strong indicators (email domain match, explicit association)
- 0.6-0.7: Moderate indicators (inferred from data patterns)
- 0.3-0.5: Weak indicators (possible connection)
- 0.0-0.2: Very uncertain connection
Object Interactions
Cross-Object Dependencies
People β Organizations
// Person references Organization
{
"type": "Person",
"email": "john@acme.com",
"company": "Acme Corp" // References Organization
}
// Organization contains People
{
"type": "Organization",
"domain": "acme.com",
"employees": ["john@acme.com", "jane@acme.com"] // References People
}
// Explicit Relationship
{
"type": "Relationships",
"fromType": "Person",
"fromId": "john@acme.com",
"toType": "Organization",
"toId": "acme.com",
"relationshipType": "employee"
}
Facts β People/Organizations
// Facts can reference People or Organizations
{
"type": "Facts",
"metric": "deal_value",
"value": 50000,
"dimension": {
"person": "john@acme.com", // References Person
"organization": "acme.com", // References Organization
"dealStage": "closed-won"
}
}
Data Flow Examples
Complete Customer Record
// 1. Person Object
{
"type": "Person",
"email": "ceo@startup.com",
"firstName": "Alex",
"lastName": "Chen",
"jobTitle": "CEO"
}
// 2. Organization Object
{
"type": "Organization",
"name": "Startup Inc",
"domain": "startup.com",
"industry": "Technology"
}
// 3. Relationship Object
{
"type": "Relationships",
"fromType": "Person",
"fromId": "ceo@startup.com",
"toType": "Organization",
"toId": "startup.com",
"relationshipType": "employee"
}
// 4. Facts Objects
[
{
"type": "Facts",
"metric": "deal_value",
"value": 100000,
"dimension": {
"person": "ceo@startup.com",
"organization": "startup.com"
}
},
{
"type": "Facts",
"metric": "website_visits",
"value": 1250,
"dimension": {
"organization": "startup.com",
"source": "organic"
}
}
]
Object Validation & Quality
Data Quality Checks
- Email Validation: Valid email format for People
- Domain Validation: Valid domain format for Organizations
- Relationship Consistency: Valid references between objects
- Metric Validation: Appropriate data types for Facts values
Quality Scoring Factors
- Completeness: Percentage of required fields populated
- Accuracy: Validation against known patterns
- Consistency: Agreement across multiple sources
- Freshness: How recently the data was updated
Duplicate Detection
- People: Email-based deduplication with name similarity
- Organizations: Domain-based with name fuzzy matching
- Facts: Metric + dimension + timestamp uniqueness
- Relationships: From/To object pair uniqueness
Best Practices
Object Design
- Use Standard Fields: Leverage common fields for better compatibility
- Custom Fields: Use customFields object for source-specific data
- Consistent Naming: Follow naming conventions across objects
- Quality Metadata: Include quality scores and validation results
Relationship Management
- Explicit Relationships: Create Relationship objects for important connections
- Strength Scoring: Use appropriate strength scores for confidence levels
- Bidirectional Links: Maintain references in both directions when needed
- Lifecycle Management: Track relationship start/end dates
Performance Optimization
- Indexing Strategy: Index on primary identifiers (email, domain)
- Batch Processing: Process related objects together
- Caching: Cache frequently accessed object relationships
- Incremental Updates: Only sync changed objects
Next Steps
π Learn About Standardization
Understand how raw data transforms into these standardized objects.
Standardization Process βUnderstanding these four object types is key to leveraging Outrun's standardization power - they provide the universal language that enables seamless data synchronization across any system.