Integrations
Connect the systems your answers should come from
Native connectors for the helpdesks and wikis most teams start with, a typed SDK for the internal systems you built yourself, and webhooks for everything in between.
60connectors across 6 categoriesEvery one scoped to least privilege and audited
Communication
10- SlackChannels, threads, in-line approvals
- Microsoft TeamsChannels and adaptive-card approvals
- GmailRead, draft, send on scoped grants
- OutlookRead, draft, send on scoped grants
- DiscordServers, channels, threads
- IntercomConversations and contact records
- TwilioSMS and voice, delivery receipts
- SendGridTransactional send and events
- WebhooksSigned delivery, replay on failure
- Email (SMTP)Any provider, credentials in vault
Work tracking
10- LinearIssues, cycles, projects
- JiraIssues, sprints, custom fields
- AsanaTasks and portfolios
- NotionDatabases and page content
- ClickUpSpaces, lists, custom statuses
- MondayBoards, items, column values
- TrelloBoards, cards, checklists
- HeightTasks and saved views
- ShortcutStories, epics, iterations
- AirtableBases, tables, linked records
Data & analytics
10- SnowflakeRead-only by default, scoped grants
- BigQueryRead-only by default, scoped grants
- PostgresDirect or through a read replica
- dbtModel metadata and lineage
- DatabricksUnity Catalog tables and volumes
- RedshiftClusters and serverless workgroups
- ClickHouseRead-only, per-database scopes
- MySQLDirect or through a read replica
- MongoDBCollections with field projection
- FivetranConnector status and sync history
Revenue & finance
10- SalesforceObjects, fields, workflow triggers
- HubSpotContacts, deals, notes
- StripeRead by default; writes always gated
- ZendeskTickets, macros, side conversations
- NetSuiteRecords and saved searches
- QuickBooksInvoices, bills, chart of accounts
- XeroContacts, invoices, bank feeds
- ChargebeeSubscriptions and entitlements
- PipedriveDeals, pipelines, activities
- FrontShared inboxes and comments
Engineering
10- GitHubRepos, PRs, checks, actions
- GitLabRepos, MRs, pipelines
- PagerDutyIncidents and on-call context
- SentryIssues, events, release health
- BitbucketRepos, PRs, pipelines
- DatadogMetrics, monitors, event stream
- GrafanaDashboards and alert rules
- OpsgenieAlerts and escalation policies
- CircleCIWorkflows, jobs, artifacts
- VercelDeployments and build logs
Identity & storage
10- Google DriveFiles and folders on scoped grants
- S3Buckets and prefixes, least privilege
- SharePointSites and document libraries
- BoxFiles and metadata
- OktaSSO, SCIM, group-mapped roles
- Entra IDSSO, SCIM, group-mapped roles
- WorkdayWorker records, read-only
- Google Cloud StorageBuckets and prefixes, scoped
- Azure BlobContainers and prefixes, scoped
- DropboxFiles, folders, shared links
Custom connectors
Anything else
If it has an HTTP API, it is a source. Describe the collection once with a typed schema, and Halyard handles auth, incremental indexing, permission mapping and citation formatting for it exactly as it does for a native connector.
integrations/custom.ts
import { source } from "@halyard/sdk";
export const orderHistory = source({
name: "order_history",
description: "Order, shipment and refund records per customer.",
// Whoever asks only ever retrieves what they can already see.
scope: ({ actor }) => ({ accountId: actor.accountId }),
async fetch({ accountId }, ctx) {
const orders = await ctx.http.get(`/v1/accounts/${accountId}/orders`);
return orders.map((o) => ({
id: o.id,
text: `Order ${o.id}: ${o.status}, placed ${o.placedAt}.`,
citation: { label: `Order ${o.id}`, href: `/orders/${o.id}` },
}));
},
});Point it at what you already wrote.
Connect one source, run a week in draft mode, and read the diff against your team's replies. If it isn't better, you've lost an afternoon.
Free for 14 days · No card required