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
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
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:
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:
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:
// 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:
// 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:
// 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:
// 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:
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:
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
// 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',
});