Exporting Data to Cloud Storage logoExporting Data to Cloud Storage

Last updated Nov 4th, 2026

Overview

You can export contact, organization, activity, segment, custom object, website visit, and audit data from Common Room into your data warehouse. Exports can be delivered to Amazon S3 (using Common Room-managed credentials or an IAM role in your account that Common Room assumes), Google Cloud Storage, or Azure Blob Storage. Once you've set up the S3 bucket using the instructions here, our team will work with you to finalize the data contract and set up the export. Each export is configured individually: you choose the entity, the attributes to include, the column names, the file format, and the schedule.

Sample data contract

Activity Data

Folder name format: data-export/Activity/YYYY/MM/DD/

Schedule: set per export (for example, all new activities from the past day, exported daily). Activity contents are not included unless you add the content attribute to your export.

Upon request: We can also trigger a one-time export of all activities. One-off exports are written to the same folder as recurring exports: data-export/Activity/YYYY/MM/DD/

Field nameData typeDescription
activity_timestamp
datetime
Timestamp of the activity
service_name
string
Signal associated with the activity
activity_type
string
Type of activity (e.g. slack_post_added)
emails
string | null
Comma separated list of emails for activity contact
primary_email
string | null
Primary email for activity contact
profiles
string | null
Comma separated list of social profiles for activity contact
full_name
string | null
Full name for activity contact
first_activity_date
datetime | null
First activity date for activity contact
contact_token
string
Contact identifier associated with activity

Additional activity attributes

AttributeDescription
activityOrigin
Whether the activity was initiated by the contact (member) or by someone else (non-member)
eventType
Event type of the activity
subSourceName
Sub-source of the activity within its signal
content
Content (body) of the activity
communityMemberId
Common Room member ID of the activity's contact
crContactId
Common Room contact ID of the activity's contact
firstSeenDate
Date the activity's contact was first seen in Common Room
organizationDomain
Domain of the contact's organization
providerAccountToken
Contact identifier associated with the activity (exported as contact_token above)
Hashed emails
emails and primary_email can be exported SHA-hashed instead of in plain text

Contact Data

Folder name format: data-export/CommunityMember/YYYY/MM/DD/

Schedule: set per export (for example, a full export of all contacts every week).

Incremental exports: To receive only new contacts (for example, contacts from the past day, every day), we set up an additional recurring export with a filter. Incremental exports use the same data-export/ prefix as full exports; there is no separate incr folder.

Field nameData typeDescription
full_name
string | null
Full name of contact
primary_email
string | null
Primary email of contact
profiles
string | null
Comma separated list of social profiles for contact
emails
string | null
Comma separated list of emails for contact
first_activity_date
datetime | null
Date of contact's first activity in Common Room
first_activity_source
string | null
Signal where contact was first active
last_activity_date
datetime | null
Date of contact's last activity in Common Room
last_activity_source
string | null
Signal where contact was last active
location
string | null
Location of contact (City, State, Country)
organization_name
string | null
Name of contact's organization
organization_domain
string | null
Domain of contact's organization
job_title
string | null
Job title of contact
tags
string | null
Comma separated list of tags for contact
segment_names
string | null
Comma separated list of segments contact is a part of
contact_tokens
string
Comma separated list of tokens representing the Contact
<custom_fields>
Dependent on custom field type
Upon request, the export can include custom fields set on the Contact (please specify a list of which fields to include)

Additional contact attributes

GroupAttributesNotes
Identity
communityMemberId, crContactId, currentProfileLink, providerAccountTokens, organizationIdentifiers
Common Room IDs, a link to the contact's profile, and identifiers for the contact and their organization
Profile
about, linkedInUrls, followersCountList, resolvedLocationCountry, resolvedLocationWorldRegion
Bio, LinkedIn URLs, follower counts, and normalized country and world region
Job
employment, employmentHistoryJson, jobRole, jobSeniority, organizationChangeDate, lastOrganization, lastOrganizationWebsite, lastTitle
employmentHistoryJson is a JSON array of {company, domain, title, startDate, endDate, isCurrent}
Phone
phoneNumbers, primaryPhoneNumber, premiumPhoneNumbers
Engagement
firstSeenDate, firstSeenSource, lastSeenDate, impactPointsAllTime, activitySentimentAllTime, mostRecentSpark
All-time engagement totals and the contact's most recent Spark
Website visits
firstSeenWebVisitDate, firstSeenWebVisitUrl, lastSeenWebVisitDate, lastSeenWebVisitUrl, webVisitTotalCount
Rep activity
lastUserActionActorEmail, lastUserActionDate, lastUserActionName
The most recent action a Common Room user took on the contact
Hashed
emails, primaryEmail
Can be exported SHA-hashed instead of in plain text
Per-period stats
activityCount, activitySentiment, impactPoints
Calculated over a fixed interval or a relative window (for example, the last 30 days), optionally per signal
Other sources
Lead scores, custom field trends, RoomieAI research answers, Salesforce IDs, static values, custom objects
Lead score value, key factors (as text or JSON), and trend and delta over N days; custom field trend and delta; RoomieAI research answers; Salesforce Contact, Lead, Account, and recommended Account IDs; static values; associated custom objects

Organization Data

Folder name format: data-export/Group/YYYY/MM/DD/

Schedule: set per export (for example, a full export of all organizations every week).

Incremental exports: To receive only new organizations, we set up an additional recurring export with a filter. Incremental exports use the same data-export/ prefix as full exports; there is no separate incr folder.

Field nameData typeDescription
organization_name
string
Name of organization
organization_domain
string
Domain of organization
location
string | null
Location of organization (City, State, Country)
contact_count
int | null
Total number of Common Room contacts associated with organization
employee_count
int | null
Estimated employee count of organization
approx_capital_raised
float | null
Estimated capital raised by organization
approx_revenue_min
float | null
Estimated minimum revenue for organization
approx_revenue_max
float | null
Estimated maximum revenue for organization
first_activity_date
datetime | null
First date the organization was active in Common Room
last_activity_date
datetime | null
Last date the organization was active in Common Room
first_activity_source
string | null
First signal the organization was active in Common Room
last_activity_source
string | null
Last signal the organization was active in Common Room
tags
string | null
Comma separated list of tags for an organization
segment_names
string | null
Comma separated list of segments that organization is a part of
<custom fields>
Dependent on custom field type
Upon request, the export can include custom fields set on the Organization (please specify a list of which fields to include)

Additional organization attributes

GroupAttributesNotes
Identity
id, normalizedDomain, organizationIdentifier, description
Firmographics
naicsIndustry, subIndustry, techStack, technologies, resolvedLocationCountry, resolvedLocationWorldRegion
Engagement
firstSeenDate, firstSeenSource, lastSeenDate, lastSeenSource, firstSeenWebVisitDate, lastSeenWebVisitDate, impactPointsAllTime, activitySentimentAllTime
Related accounts
accountType, accountId, accountName, providerId
For linked Salesforce accounts
Other sources
Per-period stats, lead scores and key factors, trend and delta columns, RoomieAI research answers
Same options as the contact export

Attribute names: contact_count, employee_count, approx_capital_raised, approx_revenue_min, and approx_revenue_max correspond to the Common Room attributes memberCount, employeeCount, capitalRaised, revenueRangeMin, and revenueRangeMax.

Other export types

In addition to activities, contacts, and organizations, you can export the following. Each is written to its own folder under data-export/ using the same YYYY/MM/DD layout.

ExportWhat it exportsAttributes available
Contact segment (memberSegment)
Contacts in one segment, plus each contact's segment status
All contact attributes, plus status
Organization segment (groupSegment)
Organizations in one segment, plus each organization's segment status
All organization attributes, plus status
Segment assignees (segmentAssignees)
Segment task assignments per rep
fullName, primaryEmail, loginIdentifierEmail, persona, segmentName, and the counts assignedCount, completedCount, disqualifiedCount, inProgressCount
Workspaces (workspaces)
Customer workspaces
name, plus organization attributes and custom fields
Custom objects (objects)
Custom objects, such as Salesforce Accounts and Opportunities
id, name, record_key, custom fields, lead scores, and attributes of the associated contact or organization (through associated_object)
User actions (userActions)
Actions your team took in Common Room
timestamp, actionName, actorIdentityId, actorName, actorEmail, actorRole, actorPersona, segmentId, segmentName, plus contact attributes of the record acted on
Workflow actions (workflowActions)
Log of automation runs
timestamp, actionName, actionType, status, errorDetails, workflowId, segmentId, segmentName, actionTargetName, actionTargetId, isManuallyTriggered
Website visits (websiteVisits)
Individual website visit events
visitTime, url, contactId, organizationId

Details

  • Each export can be delivered as CSV or JSONL. CSV is the default; let us know if you'd prefer JSONL.
    • If you choose to receive data as a CSV instead of a JSONL format, null values will be transmitted as empty strings.
  • When an export finishes, we will write a marker to the same directory with file name _completion_marker so that you know the data is ready to consume.
  • Files are written to data-export/<Entity>/YYYY/MM/DD/. The data-export prefix can be customized for your account, and a staging suffix is available.
  • Each export runs on its own schedule (any daily, weekly, or custom cadence). There are no fixed default schedules; we'll agree one with you when the export is set up.
  • Common Room custom fields map to the following data types, each of which can be nullable.
    • Yes/No - boolean
    • Date - datetime
    • Number - int
    • Single-select - string
    • Multi-select - string
    • Text - string
    • URL - string
  • For customer-provided data (e.g. data that is coming in via your CRM, Census, etc.), we will preserve the formatting of the original data signal so please ensure that you have the proper handling on your end when mapping the data.

FAQ

Why does the data model not expose a unique ID for contacts or organizations?

  • Our contacts and organizations data are dynamic in nature across our various data sources and enrichment providers due to our algorithm constantly looking for ways to improve the data quality, such as merging and unmerging contacts. The ability to merge and un-merge contacts requires us to preserve their historical state.
  • In order to help avoid data consistency issues, we only expose the latest snapshot of data and do not expose unique identifiers to external systems.
  • Common Room IDs (such as crContactId or the organization id) can be added to an export on request. Because contacts and organizations can be merged and unmerged, these IDs may change over time, so we recommend treating them as a convenience rather than a permanent primary key.

What are some options for joining across the data sets?

  • Recommended: Use the contact_token field on activities to match to a token in the contact_tokens field of a contact.
  • Generate a primary key on your end that combines a few of our export fields (e.g. full name, email, profiles) to create an id with the understanding that conflicts would need to be handled
  • Export out a subset of data that has a stable set of identifiers (e.g. using our hasEmails filter) and use that as your primary key
  • Work with the Common Room team to pass in a known identifier from your system into Common Room that can then be included in exports to help with matching

Support chat

Chatbot @ now

How else can I help with Exporting Data to Cloud Storage?

We use tracking to better understand our visitors. Read more.