Documentation/Vendor Templates
v2.0.0-beta.1Snapshot bebdcd1Markdown ↗

Vendor Templates

Vendor Templates

Quickly set up connectors for 50 services with pre-configured authentication templates. No need to look up URLs, headers, or scopes - just provide your credentials!

Quick Start

typescript
import {
  createConnectorFromTemplate,
  listVendors,
  getVendorTemplate,
  ConnectorTools
} from 'oneringai';

// Create GitHub connector with Personal Access Token
const connector = createConnectorFromTemplate(
  'my-github',           // Connector name
  'github',              // Vendor ID
  'pat',                 // Auth method
  { apiKey: process.env.GITHUB_TOKEN! }
);

// Get tools for the connector
const tools = ConnectorTools.for('my-github');

// Use with agent
const agent = Agent.create({
  connector: 'openai',
  model: 'gpt-4.1',
  tools,
});

await agent.run('List my GitHub repositories');

Discovering Available Vendors

typescript
import { listVendors, getVendorTemplate, getVendorInfo } from 'oneringai';

// List all available vendors
const vendors = listVendors();
console.log(vendors.length);  // 50

// Get specific vendor info
const github = getVendorInfo('github');
console.log(github);
// {
//   id: 'github',
//   name: 'GitHub',
//   category: 'development',
//   docsURL: 'https://docs.github.com/en/rest',
//   credentialsSetupURL: 'https://github.com/settings/developers',
//   authMethods: [
//     { id: 'pat', name: 'Personal Access Token', type: 'api_key', ... },
//     { id: 'oauth-user', name: 'OAuth App (User Authorization)', type: 'oauth', ... },
//     { id: 'github-app', name: 'GitHub App (Installation Token)', type: 'oauth', ... }
//   ]
// }

// Filter by category
import { listVendorsByCategory, listVendorsByAuthType } from 'oneringai';

const devVendors = listVendorsByCategory('development');
// [github, gitlab, bitbucket, jira, linear, asana, trello]

const apiKeyVendors = listVendorsByAuthType('api_key');
// All vendors that support API key authentication

Vendor Logos

Access vendor logos for use in UIs. Logos come from the Simple Icons library where available, with branded placeholders for others:

typescript
import {
  getVendorLogo,
  getVendorLogoSvg,
  getVendorColor,
  hasVendorLogo,
  listVendorsWithLogos,
  getAllVendorLogos
} from 'oneringai';

// Check if logo is available
if (hasVendorLogo('github')) {
  const logo = getVendorLogo('github');
  if (!logo) throw new Error('Vendor logo is unavailable');
  console.log(logo.svg);           // Full SVG content
  console.log(logo.hex);           // Brand color: "181717"
  console.log(logo.isPlaceholder); // false (has official icon)
}

// Get just the SVG content
const svg = getVendorLogoSvg('slack');

// Get SVG with custom color
const whiteSvg = getVendorLogoSvg('github', 'FFFFFF');

// Get brand color
const stripeColor = getVendorColor('stripe');  // "635BFF"

// List all vendors with logos
const vendorsWithLogos = listVendorsWithLogos();  // 54 known logo IDs

// Get all logos at once
const allLogos = getAllVendorLogos();  // Map<vendorId, VendorLogo>

VendorLogo Interface:

typescript
interface VendorLogo {
  vendorId: string;          // e.g., 'github'
  svg: string;               // Full SVG content
  hex: string;               // Brand color (without #)
  isPlaceholder: boolean;    // true if using generated placeholder
  simpleIconsSlug?: string;  // Simple Icons slug if available
}

Authentication Methods

Each vendor template includes one or more authentication methods:

API Key

Simple token-based authentication:

typescript
// GitHub Personal Access Token
createConnectorFromTemplate('my-github', 'github', 'pat', {
  apiKey: process.env.GITHUB_TOKEN!
});

// Slack Bot Token
createConnectorFromTemplate('my-slack', 'slack', 'bot-token', {
  apiKey: process.env.SLACK_BOT_TOKEN!
});

// Stripe Secret Key
createConnectorFromTemplate('my-stripe', 'stripe', 'api-key', {
  apiKey: process.env.STRIPE_SECRET_KEY!
});

// HeyReach (LinkedIn sequencing) — key sent via the X-API-KEY header
createConnectorFromTemplate('my-heyreach', 'heyreach', 'api-key', {
  apiKey: process.env.HEYREACH_API_KEY!
});

// EmailBison (cold-email sequencing) — per-instance deployment, so you MUST
// override baseURL with your own instance domain.
createConnectorFromTemplate('my-emailbison', 'emailbison', 'api-token', {
  apiKey: process.env.EMAILBISON_TOKEN!
}, { baseURL: 'https://acme.emailbison.com/api' });

// Cal.com — API v1 key passed automatically as the ?apiKey query parameter
createConnectorFromTemplate('my-calcom', 'cal-com', 'api-key', {
  apiKey: process.env.CALCOM_API_KEY!  // cal_live_...
});

// Calendly — Personal Access Token (Bearer). See OAuth section for multi-account.
createConnectorFromTemplate('my-calendly', 'calendly', 'personal-token', {
  apiKey: process.env.CALENDLY_TOKEN!
});

OAuth (User Authorization)

For apps where users grant permissions:

typescript
// GitHub OAuth App
createConnectorFromTemplate('my-github-oauth', 'github', 'oauth-user', {
  clientId: process.env.GITHUB_CLIENT_ID!,
  clientSecret: process.env.GITHUB_CLIENT_SECRET!,
  redirectUri: 'https://myapp.com/callback',
  scope: 'repo read:user'  // Optional - uses template defaults
});

// Google OAuth (unified template also covers Workspace: Drive, Gmail, Calendar, Sheets, Docs)
createConnectorFromTemplate('my-google', 'google-api', 'oauth-user', {
  clientId: process.env.GOOGLE_CLIENT_ID!,
  clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
  redirectUri: 'https://myapp.com/google/callback',
});

// Calendly OAuth (multi-account/public apps; auto-refresh, PKCE)
createConnectorFromTemplate('my-calendly-oauth', 'calendly', 'oauth-user', {
  clientId: process.env.CALENDLY_CLIENT_ID!,
  clientSecret: process.env.CALENDLY_CLIENT_SECRET!,
  redirectUri: 'https://myapp.com/calendly/callback',
});

Service Account (JWT Bearer)

For server-to-server authentication:

typescript
// Google Service Account (same unified 'google-api' vendor template)
createConnectorFromTemplate('my-gcp', 'google-api', 'service-account', {
  clientId: process.env.GOOGLE_SERVICE_CLIENT_ID!,
  privateKey: process.env.GOOGLE_SERVICE_PRIVATE_KEY!,
  scope: 'https://www.googleapis.com/auth/cloud-platform'
});

// Salesforce JWT Bearer
createConnectorFromTemplate('my-salesforce', 'salesforce', 'jwt-bearer', {
  clientId: process.env.SF_CLIENT_ID!,
  privateKey: process.env.SF_PRIVATE_KEY!,
  username: process.env.SF_USERNAME!
});

Client Credentials

For app-level authentication:

typescript
// Microsoft 365 App-Only (unified 'microsoft' vendor template covers 365, Teams, OneDrive, Outlook)
createConnectorFromTemplate('my-m365', 'microsoft', 'client-credentials', {
  clientId: process.env.AZURE_CLIENT_ID!,
  clientSecret: process.env.AZURE_CLIENT_SECRET!,
  tenantId: process.env.AZURE_TENANT_ID!
});

// PayPal
createConnectorFromTemplate('my-paypal', 'paypal', 'oauth-client-credentials', {
  clientId: process.env.PAYPAL_CLIENT_ID!,
  clientSecret: process.env.PAYPAL_CLIENT_SECRET!
});

Getting Credentials Setup URLs

Each vendor template includes the URL where you create credentials:

typescript
import { getCredentialsSetupURL, getDocsURL } from 'oneringai';

// Get where to create credentials
const setupUrl = getCredentialsSetupURL('github');
// 'https://github.com/settings/developers'

// Get API documentation
const docsUrl = getDocsURL('github');
// 'https://docs.github.com/en/rest'

Configuration Options

Override defaults when creating connectors:

typescript
createConnectorFromTemplate(
  'my-github',
  'github',
  'pat',
  { apiKey: process.env.GITHUB_TOKEN! },
  {
    // Override baseURL (e.g., for GitHub Enterprise)
    baseURL: 'https://github.mycompany.com/api/v3',

    // Add description
    description: 'GitHub connector for CI/CD automation',

    // Set display name
    displayName: 'GitHub (Production)',

    // Configure timeout
    timeout: 30000,

    // Enable logging
    logging: true,
  }
);

Complete Vendor Reference

Major Vendors (2 vendors)

Vendor ID Auth Methods Credentials URL
Microsoft microsoft oauth-user, client-credentials Azure app registrations
Google Workspace google-api oauth-user, service-account Google Cloud credentials

Communication (6 vendors)

Vendor ID Auth Methods Credentials URL
Slack slack bot-token, oauth-user api.slack.com/apps
Discord discord bot-token, oauth-user discord.com/developers
Telegram telegram bot-token t.me/BotFather
X (Twitter) twitter oauth-user, bearer-token developer.x.com
Zoom zoom oauth-user, server-to-server marketplace.zoom.us
HeyReach heyreach api-key app.heyreach.io

Development (7 vendors)

Vendor ID Auth Methods Credentials URL
GitHub github pat, oauth-user, github-app github.com/settings/developers
GitLab gitlab pat, oauth-user gitlab.com/-/profile/personal_access_tokens
Bitbucket bitbucket app-password, oauth-user bitbucket.org/account/settings/app-passwords
Jira jira api-token, oauth-3lo id.atlassian.com/manage-profile/security/api-tokens
Linear linear api-key, oauth-user linear.app/settings/api
Asana asana pat, oauth-user app.asana.com/0/developer-console
Trello trello api-key, oauth-user trello.com/power-ups/admin

Productivity (5 vendors)

Vendor ID Auth Methods Credentials URL
Notion notion internal-token, oauth-user notion.so/my-integrations
Airtable airtable pat, oauth-user airtable.com/create/tokens
Confluence confluence api-token, oauth-3lo Atlassian API Tokens
Cal.com cal-com api-key Cal.com API keys
Calendly calendly personal-token, oauth-user Calendly integrations

Google Workspace and Microsoft 365 use the unified google-api and microsoft templates listed under Major Vendors; there are no separate product-specific template IDs.

CRM (3 vendors)

Vendor ID Auth Methods Credentials URL
Salesforce salesforce oauth-user, jwt-bearer Salesforce Connected Apps
HubSpot hubspot api-key, oauth-user, oauth-mcp developers.hubspot.com
Pipedrive pipedrive api-token, oauth-user app.pipedrive.com/settings/api

Payments (4 vendors)

Vendor ID Auth Methods Credentials URL
Stripe stripe api-key, oauth-connect dashboard.stripe.com/apikeys
PayPal paypal oauth-client-credentials developer.paypal.com/dashboard
QuickBooks quickbooks oauth-user developer.intuit.com
Ramp ramp oauth-client-credentials, oauth-user app.ramp.com/settings/developer

Cloud (2 vendors)

Vendor ID Auth Methods Credentials URL
AWS aws access-key AWS IAM Console
Cloudflare cloudflare api-token, global-api-key dash.cloudflare.com/profile/api-tokens

Storage (2 vendors)

Vendor ID Auth Methods Credentials URL
Dropbox dropbox oauth-user dropbox.com/developers/apps
Box box oauth-user, client-credentials developer.box.com/console

Email (5 vendors)

Vendor ID Auth Methods Credentials URL
SendGrid sendgrid api-key app.sendgrid.com/settings/api_keys
Mailchimp mailchimp api-key, oauth-user admin.mailchimp.com/account/api
Mailgun mailgun api-key app.mailgun.com/settings/api_security
Postmark postmark server-token, account-token account.postmarkapp.com/api_tokens
EmailBison emailbison api-token EmailBison authentication

Monitoring (3 vendors)

Vendor ID Auth Methods Credentials URL
Datadog datadog api-key app.datadoghq.com/organization-settings/api-keys
PagerDuty pagerduty api-key, oauth-user PagerDuty API Keys
Sentry sentry auth-token, oauth-user sentry.io/settings/account/api/auth-tokens

Search (4 vendors)

Vendor ID Auth Methods Credentials URL
Serper serper api-key serper.dev/api-key
Brave Search brave-search api-key brave.com/search/api
Tavily tavily api-key tavily.com/#api
RapidAPI Web Search rapidapi-search api-key rapidapi.com/developer/dashboard

Scrape (1 vendor)

Vendor ID Auth Methods Credentials URL
ZenRows zenrows api-key zenrows.com/register

Other (6 vendors)

Vendor ID Auth Methods Credentials URL
Twilio twilio api-key, api-key-sid Twilio Console
Zendesk zendesk api-token, oauth-user Zendesk API Tokens
Intercom intercom access-token, oauth-user developers.intercom.com
Shopify shopify access-token, oauth-user partners.shopify.com
ipinfo ipinfo api-key ipinfo.io/signup
Clay clay api-key Clay API key guide

Template vs Manual Configuration

Use templates when:

  • Setting up a well-known service
  • You want sensible defaults for headers, URLs, and scopes
  • You want the credentials setup URL handy

Use manual Connector.create() when:

  • Connecting to a custom API not in the template list
  • You need complete control over configuration
  • The service has non-standard authentication
typescript
// Template approach (recommended for supported vendors)
createConnectorFromTemplate('my-github', 'github', 'pat', {
  apiKey: process.env.GITHUB_TOKEN!
});

// Manual approach (for custom/unsupported APIs)
Connector.create({
  name: 'my-custom-api',
  serviceType: 'custom',
  auth: {
    type: 'api_key',
    apiKey: process.env.CUSTOM_API_KEY!,
    headerName: 'X-Custom-Auth',
    headerPrefix: '',
  },
  baseURL: 'https://api.custom-service.com/v1',
});

Documentation snapshot · 2026-11-02Suggest a correction ↗

Search documentation

Type to search the v2 documentation.