Rich User and Organization Data

Rich User and Organization Data provides all applications built on Baseplate access to a centralized, enriched data repository of companies and their employees. This repository leverages corporate email domains to automatically associate users and tenants with verified organizational profiles during authentication.

Upon login or account creation, Baseplate parses the top-level domain (TLD) of the user's corporate email, queries a central database, and establishes a mapping between the user’s tenant and an existing organization profile. These profiles are anchored by the Diffbot Organization ID, which acts as the global identifier for companies.

Data is initially queried directly from Diffbot. Upon completion of the Creso.ai, the first app built on Baseplate, we'll switch to querying Creso directly. Creso.ai serves as a caching and refinement layer on to of Diffbot’s Organization ontology (for company / organization data) and Person ontology (for employee and user data).  This data can then be further enriched (with secondary services), annotated with customer specific data and updated by application specific functionality. The resulting data allows Baseplate apps to auto-populate tenant and user information, power personalization features, and improve support and analytics without requiring end-users to input this information manually.

The reason that is useful is we can use it to automatically pull in lots of data about that customer automatically without having to ask the user for information. In general we want apps that are built on Baseplate to be highly automated and "magically" know a lot of information and the user's company.

Inspiration: Salesforce Company Profile Enrichment, Clearbit, HubSpot CRM enrichment.


Role Access

System Administrator

System Administrators manage global mappings between tenants and organization records. They need visibility into how tenants are matched, access to override or manually update mappings, and the ability to audit Diffbot/Creso data sync statuses.

User Stories:

  1. As a System Admin, I want to view a log of tenant-to-organization mappings so I can audit automatic associations.
  2. As a System Admin, I want to override a misidentified tenant mapping and manually assign it to the correct organization.
  3. As a System Admin, I want to force a refresh of organization data from Diffbot or Creso.ai.
  4. As a System Admin, I want to search for organizations using domain or Diffbot ID.
  5. As a System Admin, I want to view enrichment history to track changes over time.
  6. As a System Admin, I want to configure fallback behavior if no organization is found during login.

Customer Success

Customer Success representatives use this feature to view customer and user profiles with enriched company data to provide better, personalized support and insights into user environments.

User Stories:

  1. As Customer Success, I want to see company details alongside a user's support ticket.
  2. As Customer Success, I want to view enriched user job titles and departments to tailor responses.
  3. As Customer Success, I want to confirm if a tenant has a valid organization mapping to troubleshoot issues.
  4. As Customer Success, I want to view users grouped by their organization hierarchy.
  5. As Customer Success, I want to use company data to prioritize accounts during onboarding.
  6. As Customer Success, I want to flag mismatches between a user’s domain and their mapped organization.

Customer Administrator

Customer Administrators benefit from accurate organizational data automatically enriching their tenant settings. They need limited access to view and, in some cases, update organizational metadata relevant to their environment.

User Stories:

  1. As a Customer Admin, I want to view my organization’s profile including name, size, industry, etc.
  2. As a Customer Admin, I want to edit or annotate metadata for internal use (e.g., account tier).
  3. As a Customer Admin, I want to see all users under my organization with roles and titles.
  4. As a Customer Admin, I want to verify the correct mapping between my domain and my organization.
  5. As a Customer Admin, I want to suggest corrections if my organization data is outdated.

Manager

Managers use enriched data to better understand the team’s structure and support reporting and performance management.

User Stories:

  1. As a Manager, I want to see organizational charts generated from user job titles and departments.
  2. As a Manager, I want to search for users in my organization by title or role.
  3. As a Manager, I want to view reports filtered by department or seniority.
  4. As a Manager, I want to understand how my team fits into the larger organization.
  5. As a Manager, I want to ensure accurate reporting lines and hierarchy.

Standard User

Standard Users primarily interact with their own profiles and benefit indirectly from automatic enrichment that simplifies onboarding and personalization.

User Stories:

  1. As a User, I want my company information to auto-populate when I sign up with my corporate email.
  2. As a User, I want to see my job title and department pre-filled in my profile.
  3. As a User, I want to verify that I am mapped to the correct organization.
  4. As a User, I want to update my title or role if it changes.
  5. As a User, I want to see my teammates and their roles for easier collaboration.

Pages and Screens

1. Organization Profile Page

Displays enriched organization data for the current tenant or selected organization. Central view for all enriched fields and user association.

Screen Content:

Field NameConstraintsError CheckingNotes
Organization NameRequired, max 100 charsMust be presentPre-filled from Diffbot/Creso
IndustryOptional, select from listValid industry codeNormalized by Creso
Company SizeOptional, numericMust be a positive integerEmployee count
WebsiteOptional, URL formatValid URLFrom Diffbot
Diffbot IDRequired, system generatedMust be uniquePrimary identifier
Mapping Domain(s)Required, list of domainsValid domain formatUsed during auth for mapping
Enrichment Last SyncedAuto-populated, read-onlyISO datetime formatAudit field

Figma Link: TBD


Query and Setup

  • On authentication, extract TLD from email → query local org DB → if not found, query Diffbot → fetch org data.
  • Data normalized and cached in Creso.ai; synced periodically.
  • Admin views will require queries for mapped users, enrichment history, and override options.

Actions

  • Refresh Organization Data → Triggers API call to re-fetch org data from Creso or Diffbot.
  • Manually Map Organization → Opens domain and org picker.
  • Annotate Organization Data → Allows custom fields to be added.
  • View Enrichment History → Opens a modal/timeline view of data changes.

Notes

  • Mapping based on email domain assumes a unique mapping per domain.
  • Multi-domain organizations will need support for aliasing.
  • Needs governance on when to trigger auto-refresh vs manual updates.

Absolutely! Here's the Page Definition for the Person Profile (View) Page — designed to work alongside the Rich User and Organization Data feature in the Baseplate application.


Person Profile (View)

The Person Profile page provides a detailed view of a user's enriched personal and professional data. The data is sourced from the organization's mapping through Diffbot and Creso.ai, which includes role, department, public professional background, and optional custom annotations.

This page supports internal personalization (e.g., onboarding workflows), hierarchical visibility (e.g., manager views), and support experiences (e.g., Customer Success reviewing user context). It also functions as a source of truth for organization-wide reporting and user segmentation.

The page is accessible to all user roles, but with varying degrees of data visibility and editing rights.


Screen Content

Field NameConstraintsError CheckingField Notes
Full NameRequired, 1–100 charsMust be presentSourced from Creso/Diffbot or user input
Job TitleOptional, 1–100 charsNoneEnriched and user-editable
DepartmentOptional, 1–100 charsNoneEnriched or inferred from org hierarchy
Work EmailRequired, valid email formatValid email requiredPrimary user ID, cannot be edited
LinkedIn ProfileOptional, URL formatMust be a valid LinkedIn URL if presentEnriched from Diffbot
Reports ToOptional, link to another profileMust reference valid user in systemEnables org chart features
Organization NameRead-onlyPre-filledInherited from organization mapping
Organization Diffbot IDRead-onlyValid UUID formatUsed for cross-referencing
Bio / SummaryOptional, max 500 charsNonePublic-facing profile summary
TagsOptional, list of tagsAlphanumeric, 1–50 chars per tagCustom/internal tags (e.g., “Executive”, “Champion”)
Last Enriched AtRead-only, ISO date formatAuto-generatedUsed to audit freshness of external data
Custom NotesOptional, rich textNoneEditable by Customer Success or Admin

Figma Link

To be provided when design mockups are created.


Query and Setup

  • On Load:
    • Query the user record by ID or email.
    • Fetch enriched user data from Creso cache.
    • If data is outdated or incomplete, show prompt to refresh enrichment.
    • Load associated organization record and reporting hierarchy.
  • Visibility Logic:
    • Customer Success and Admins can see all fields.
    • Managers can see direct reports.
    • Users can see/edit their own basic profile (editable fields: Job Title, Department, Bio).

Actions

  • Edit Profile (Own) – Standard User can edit select fields (Job Title, Bio, Tags).
  • Add Custom Note – Admin/Customer Success can add notes to the profile.
  • View Org Chart – Opens modal showing reporting lines.
  • Refresh Enrichment – Admin/Customer Success can re-query Diffbot/Creso for updated data.
  • View Activity/History – (Future integration) link to usage/activity logs for the person.

Notes

  • If Diffbot or Creso data is missing, fallback to user-provided values.
  • Auto-suggestion of tags or departments may be added via LLM prompts.
  • Consider permission gating to prevent overexposure of personally identifiable info (PII) depending on user role.
  • Should support rendering in modal or full-page format depending on usage context (e.g. modal in team directory, full page in profile navigation).

Let me know if you'd like me to generate companion pages like Person Directory, Org Chart, or Edit Person Profile, or wire up logic for enrichment refreshes!

Data Model

NameDescriptionConstraintsNotes
organization_idUnique identifier from DiffbotRequired, uniquePrimary key
nameOrganization nameRequired
industryIndustry classificationOptionalNormalized via taxonomy
sizeNumber of employeesOptional, numeric
domain_listEmail domains associated with the orgRequired, listUsed for mapping
websiteOrganization websiteOptional, URL
sourceData source (Diffbot, Creso, Manual)Required
enrichment_last_syncedTimestamp of last successful enrichment syncAuto-generated
custom_annotationsCustom fields added via applicationsOptionalSupports flexible extension

LLM Query

Potential LLM queries include:

“Auto-tag industry and keywords based on company description.”

All apps will have access to a central database of companies and the employees of those companies.

“Summarize this organization’s profile for internal reporting.”

“Generate a company overview based on the following fields.”

“Suggest corrections to misaligned data between this profile and public records.”