NewMCP ServerView docs
Integrations

Custom Connectors

Build custom connectors or use pre-built connectors for popular services.

10 min readUpdated 2026-02-03

Custom Connectors

Build custom connectors or use our pre-built connectors to sync data from any source into LH42.

Pre-Built Connectors

LH42 provides ready-to-use connectors for popular services:

ConnectorDescriptionCategory
AirtableSync bases and tablesDatabase
AsanaProjects, tasks, and commentsProject Management
BoxFiles and foldersCloud Storage
ConfluenceSpaces and pagesDocumentation
DropboxFiles and foldersCloud Storage
FigmaDesign files and commentsDesign
GitHubRepositories, issues, PRs, wikisDevelopment
HubSpotContacts, deals, tickets, knowledge baseCRM
JiraIssues, projects, and commentsProject Management
LinearIssues and projectsProject Management
NotionPages and databasesDocumentation
SalesforceObjects, records, knowledge articlesCRM
TrelloBoards, cards, and commentsProject Management
ZendeskTickets and knowledge base articlesSupport

To enable a pre-built connector:

python
# Example: Enable the Notion connector
client.connectors.enable({
    "type": "notion",
    "auth": {
        "token": "your-notion-integration-token"
    },
    "sources": [
        {"type": "workspace"},  # Sync entire workspace
        # Or specific pages/databases:
        # {"type": "page", "id": "page-id"},
        # {"type": "database", "id": "database-id"}
    ]
})

Custom Connector Architecture

For sources not covered by pre-built connectors, build your own:

  1. Push - Send documents directly via API
  2. Pull - LH42 fetches from your endpoint
  3. Webhook - Receive real-time updates

Push Connector

Send documents directly:

python
client.documents.upload(
    content="Document content here",
    title="External Document",
    metadata={
        "source": "custom_crm",
        "external_id": "crm_12345"
    }
)

Pull Connector

Register an endpoint for LH42 to fetch from:

python
client.connectors.create({
    "name": "CRM Connector",
    "type": "pull",
    "endpoint": "https://your-api.com/documents",
    "auth": {
        "type": "bearer",
        "token": "your-token"
    },
    "schedule": "0 */6 * * *"
})

Your endpoint must return:

json
{
  "documents": [
    {
      "id": "ext_123",
      "title": "Document Title",
      "content": "Document content...",
      "metadata": {}
    }
  ],
  "next_cursor": "cursor_abc"
}

Webhook Connector

Receive real-time updates:

python
connector = client.connectors.create({
    "name": "CRM Webhook",
    "type": "webhook"
})

# Use connector.webhook_url in your system
print(connector.webhook_url)

Send updates to the webhook:

bash
POST https://api.lakehouse42.com/v1/webhooks/{id}
{
  "action": "upsert",
  "document": {
    "id": "ext_123",
    "title": "Updated Document",
    "content": "New content..."
  }
}

SDK Helpers

Use our SDK for common patterns:

python
from lakehouse42.connectors import BaseConnector

class CRMConnector(BaseConnector):
    def fetch_documents(self, cursor=None):
        # Your fetching logic
        return documents, next_cursor

    def transform(self, doc):
        # Transform to LH42 format
        return {
            "title": doc["name"],
            "content": doc["description"]
        }

Best Practices

  1. Idempotency - Use external IDs to prevent duplicates
  2. Incremental sync - Track last sync timestamp
  3. Error handling - Implement retries with backoff
  4. Monitoring - Log sync status and errors

Request a Connector

Need a connector for a service not listed? Contact us or submit a request through the dashboard.