MATIH Platform is in active MVP development. Documentation reflects current implementation status.
10a. Data Ingestion
Connectors
SaaS Connectors

SaaS Connectors

SaaS connectors extract data from cloud-hosted business applications. They handle OAuth2 authentication flows, API pagination, rate limiting, and incremental extraction. All SaaS connectors support Full Refresh mode; many also support Incremental mode using a cursor field such as updated_at or modified_date.


Salesforce

The Salesforce connector extracts data from Salesforce CRM objects including standard objects (Account, Contact, Opportunity, Lead, Case) and custom objects.

Configuration

{
  "name": "salesforce-crm",
  "connectorType": "salesforce",
  "connectionConfig": {
    "client_id": "3MVG9...",
    "client_secret": "********",
    "refresh_token": "5Aep...",
    "start_date": "2024-01-01T00:00:00Z",
    "is_sandbox": false,
    "streams_criteria": [
      { "criteria": "starts with", "value": "Account" },
      { "criteria": "starts with", "value": "Opportunity" }
    ]
  }
}

Configuration Fields

FieldTypeRequiredDefaultDescription
client_idstringYes--Salesforce Connected App client ID
client_secretstringYes--Connected App client secret
refresh_tokenstringYes--OAuth2 refresh token
start_datestringNo2 years agoISO 8601 start date for initial sync
is_sandboxbooleanNofalseSet to true for Salesforce sandbox environments
streams_criteriaarrayNoAll objectsFilter criteria for which objects to discover

Available Streams

StreamSync ModesKey Fields
AccountFull Refresh, IncrementalId, Name, Industry, AnnualRevenue
ContactFull Refresh, IncrementalId, FirstName, LastName, Email, AccountId
OpportunityFull Refresh, IncrementalId, Name, StageName, Amount, CloseDate
LeadFull Refresh, IncrementalId, FirstName, LastName, Email, Status
CaseFull Refresh, IncrementalId, Subject, Status, Priority, AccountId
TaskFull Refresh, IncrementalId, Subject, Status, WhoId, WhatId
EventFull Refresh, IncrementalId, Subject, StartDateTime, EndDateTime
Custom objectsFull Refresh, IncrementalDepends on object definition

OAuth2 Setup

  1. Create a Connected App in Salesforce Setup
  2. Enable OAuth settings with scopes: api, refresh_token, offline_access
  3. Set the callback URL to your Matih platform URL
  4. Use the generated client ID and secret in the connector configuration
  5. Complete the OAuth flow to obtain a refresh token

HubSpot

The HubSpot connector extracts CRM data, marketing data, and content from HubSpot.

Configuration

{
  "name": "hubspot-marketing",
  "connectorType": "hubspot",
  "connectionConfig": {
    "credentials": {
      "credentials_title": "Private App Credentials",
      "access_token": "pat-na1-********"
    },
    "start_date": "2024-01-01T00:00:00Z"
  }
}

Configuration Fields

FieldTypeRequiredDefaultDescription
credentials.access_tokenstringYes--HubSpot Private App access token
start_datestringNo2 years agoISO 8601 start date for initial sync

Available Streams

StreamSync ModesDescription
ContactsFull Refresh, IncrementalCRM contacts with properties
CompaniesFull Refresh, IncrementalCRM companies with properties
DealsFull Refresh, IncrementalCRM deals/opportunities
TicketsFull Refresh, IncrementalSupport tickets
Email EventsFull Refresh, IncrementalMarketing email open/click events
FormsFull RefreshMarketing form definitions
Form SubmissionsFull Refresh, IncrementalForm submission data
CampaignsFull RefreshMarketing campaigns

Stripe

The Stripe connector extracts payment, subscription, and customer data from Stripe.

Configuration

{
  "name": "stripe-payments",
  "connectorType": "stripe",
  "connectionConfig": {
    "account_id": "acct_1234567890",
    "client_secret": "sk_live_********",
    "start_date": "2024-01-01T00:00:00Z",
    "lookback_window_days": 7
  }
}

Configuration Fields

FieldTypeRequiredDefaultDescription
account_idstringYes--Stripe account ID
client_secretstringYes--Stripe secret key (live or test mode)
start_datestringYes--ISO 8601 start date
lookback_window_daysintegerNo0Days to re-fetch for late-arriving data

Available Streams

StreamSync ModesDescription
ChargesFull Refresh, IncrementalPayment charges
CustomersFull Refresh, IncrementalCustomer records
InvoicesFull Refresh, IncrementalInvoice data
SubscriptionsFull Refresh, IncrementalActive and historical subscriptions
PaymentsFull Refresh, IncrementalPayment intents
RefundsFull Refresh, IncrementalRefund records
ProductsFull Refresh, IncrementalProduct catalog
PricesFull Refresh, IncrementalPrice definitions
Balance TransactionsFull Refresh, IncrementalBalance transaction history

Zendesk

The Zendesk connector extracts support ticket, user, and organization data.

Configuration

{
  "name": "zendesk-support",
  "connectorType": "zendesk-support",
  "connectionConfig": {
    "subdomain": "mycompany",
    "credentials": {
      "credentials": "api_token",
      "email": "admin@mycompany.com",
      "api_token": "********"
    },
    "start_date": "2024-01-01T00:00:00Z"
  }
}

Configuration Fields

FieldTypeRequiredDefaultDescription
subdomainstringYes--Zendesk subdomain
credentials.emailstringYes--Admin email address
credentials.api_tokenstringYes--Zendesk API token
start_datestringYes--ISO 8601 start date

Available Streams

StreamSync ModesDescription
TicketsFull Refresh, IncrementalSupport tickets with all fields
UsersFull Refresh, IncrementalEnd users and agents
OrganizationsFull Refresh, IncrementalCustomer organizations
Ticket CommentsFull Refresh, IncrementalTicket comment thread
Ticket MetricsFull Refresh, IncrementalSLA and response time metrics
Satisfaction RatingsFull Refresh, IncrementalCSAT survey responses
GroupsFull RefreshAgent groups
TagsFull RefreshTicket tags

Other SaaS Connectors

The platform supports 200+ additional SaaS connectors. Below is a selection of commonly used connectors.

ConnectorCategoryAuth MethodKey Streams
JiraProject ManagementAPI tokenIssues, Projects, Sprints, Worklogs
GitHubDevelopmentPersonal access tokenRepositories, Pull Requests, Issues, Commits
GitLabDevelopmentPersonal access tokenProjects, Merge Requests, Issues, Pipelines
Google AnalyticsAnalyticsOAuth2 / Service accountPage views, Sessions, Events, Conversions
Google AdsAdvertisingOAuth2Campaigns, Ad Groups, Ads, Keywords
Facebook AdsAdvertisingAccess tokenCampaigns, Ad Sets, Ads, Insights
SlackCommunicationBot tokenMessages, Channels, Users, Reactions
IntercomSupportAccess tokenContacts, Conversations, Tags, Segments
ShopifyE-commerceAPI keyOrders, Products, Customers, Inventory
QuickBooksFinanceOAuth2Invoices, Payments, Customers, Accounts
XeroFinanceOAuth2Invoices, Contacts, Bank Transactions
NotionProductivityIntegration tokenDatabases, Pages, Blocks
AirtableProductivityAPI keyBases, Tables, Records
AsanaProject ManagementPersonal access tokenTasks, Projects, Users, Sections
Monday.comProject ManagementAPI tokenBoards, Items, Updates
TwilioCommunicationAccount SID + Auth tokenMessages, Calls, Accounts
SendGridEmailAPI keyContacts, Campaigns, Stats
MixpanelAnalyticsService accountEvents, Funnels, Cohorts
AmplitudeAnalyticsAPI key + Secret keyEvents, Users, Cohorts

For detailed configuration of any connector, refer to the Airbyte connector documentation or use the Discover Schema feature in the Data Workbench to explore available streams and their fields.