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
| Source | Category | Auth | Capabilities |
|---|---|---|---|
| HubSpot | CRM | OAuth | Read & write contacts, companies, deals |
| Folk CRM | CRM | API key | Read & write CRM data |
| Google Sheets | Spreadsheet | OAuth | Read & write rows |
| Stripe | Payments | API key | Read customers, invoices, subscriptions |
| Databricks | Data warehouse | Client ID & Secret | Read catalogs, schemas, tables, run SQL |
| Attio | CRM | OAuth | Read & write CRM data |
How it works
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.
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.
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.)
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.
Chatting with the Data Model agent
The Data Model agent understands natural language commands for shaping your schema. Here are some examples: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
- Connect each source to the same data model
- Define a merge key, a shared field (like email) used to match records across sources
- Set source priority by choosing which source takes precedence when the same field has different values
- Resolve conflicts: the higher-priority source wins for overlapping fields; unique fields from each source are always included
Example: Merging contacts from HubSpot and Google Sheets
Example: Merging contacts from HubSpot and Google Sheets
You have contacts in HubSpot (with deal history) and a Google Sheet (with custom scoring). Both share an email column.
- Connect HubSpot and Google Sheets to your Contacts data model
- Set email as the merge key
- Set HubSpot as the primary source (higher priority)
- After sync, each contact has deal data from HubSpot and scoring from Google Sheets, matched by email
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
Best practices
Always set a primary key
Always set a primary key
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.
Keep schemas focused
Keep schemas focused
Only include the columns your app needs. Importing every available field adds noise and makes your data models harder to work with.
Test with preview before syncing
Test with preview before syncing
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.