Skip to main content

What are data connectors?

Data connectors let you bring data from external systems into your Gainable app. Instead of manually entering data, you connect a source (like a CRM, spreadsheet, or payment platform) and use a conversational AI agent to define how that data maps into your app’s data models. The Data Model agent walks you through the process: discovering available columns, letting you pick which ones to include, renaming fields, setting types, choosing primary keys, and syncing the data into your app.
Data connectors are a build-time tool. You set them up while designing your app, and they sync external data into your data models. This is different from copilot agents, which are runtime assistants that help your app’s users.

Supported data sources

SourceCategoryAuthCapabilities
HubSpotCRMOAuthRead & write contacts, companies, deals
Folk CRMCRMAPI keyRead & write CRM data
Google SheetsSpreadsheetOAuthRead & write rows
StripePaymentsAPI keyRead customers, invoices, subscriptions
DatabricksData warehouseClient ID & SecretRead catalogs, schemas, tables, run SQL
AttioCRMOAuthRead & write CRM data

How it works

1

Connect to a data source

Choose a connector and authenticate with OAuth or an API key. Gainable securely stores the connection. You can have several connectors to the same data source with different credentials, for example multiple HubSpot accounts.
2

Create a data model and connect to source(s)

Create a new model and select what sources you want to include in the data model.
3

Select what data to include

Based on your source selections pick what data to include in the data model (for Google Sheets it’s Spreadsheet + Sheet, etc.)
4

Chat to define your schema

Best way to get started is to ask the agent to “Analyze the data structure and suggest a schema”. It will then automatically detect multiple sources and suggest merging, and more.Use natural language to select columns, rename fields, set types, and pick a primary key. The agent handles the mapping.
5

Save schema and sync data

Confirm the schema and sync the data into your app. Records from the external source populate your data model.

Chatting with the Data Model agent

The Data Model agent understands natural language commands for shaping your schema. Here are some examples:
Include first name, last name, email, and company name
Rename "company_name" to "company" and "amt" to "amount"
Set the email field as the primary key
Change the "amount" field type to currency
Exclude the internal_id and legacy_status columns
Let me choose columns again for the schema
The agent will confirm each change and show you an updated preview so you can verify the schema before syncing.

Merging multiple sources

You can connect multiple data sources to a single data model. This is useful when the same type of data lives in different systems, for example contacts in both HubSpot and Folk CRM.

How merging works

  1. Connect each source to the same data model
  2. Define a merge key, a shared field (like email) used to match records across sources
  3. Set source priority by choosing which source takes precedence when the same field has different values
  4. Resolve conflicts: the higher-priority source wins for overlapping fields; unique fields from each source are always included
You have contacts in HubSpot (with deal history) and a Google Sheet (with custom scoring). Both share an email column.
  1. Connect HubSpot and Google Sheets to your Contacts data model
  2. Set email as the merge key
  3. Set HubSpot as the primary source (higher priority)
  4. After sync, each contact has deal data from HubSpot and scoring from Google Sheets, matched by email
If both sources have a “company” field with different values, HubSpot’s value is used because it has higher priority.

Manage data models

The data model interface has 4 main areas:
  • Connections tab: View all connected sources
  • Schema tab: See the field mappings between external columns and your data model fields
  • Preview tab: View sample data with your current schema applied before committing a sync
  • Cron tab: Enable auto sync to keep the data updated from the connected sources
Use the Sync button in the **Preview tab **to pull the latest data from connected sources into your app.

Best practices

Choose a unique field (like email or ID) as the primary key. This ensures records are correctly identified during syncs and merges, preventing duplicates.This also allows for data upserts, so data created within an app stays connected to the synced data.
Only include the columns your app needs. Importing every available field adds noise and makes your data models harder to work with.
Always check the Preview tab before running a full sync. This lets you catch mapping issues, unexpected nulls, or type mismatches before they reach your app data.

Learn more