Heym connects to external services through credentials. Each credential type stores the connection details for one service and can be reused across multiple nodes and workflows. See Credentials for an overview.
Add credentials in Settings → Credentials. All values are encrypted at rest. Credentials can be shared with other users or Teams.
Some integration nodes do not require credentials. WebSocket Trigger and WebSocket Send connect to external sockets using the URL, headers, and subprotocols configured directly on the node.
Credential Types at a Glance
| Type | Used By | Key Fields |
|---|---|---|
| OpenAI | LLM, Agent, RAG | api_key |
| OpenAI Codex | Codex | access_token |
| OpenCode Go | OpenCode Go | api_key, optional base_url |
| LLM, Agent | api_key | |
| GitHub | GitHub, Codex, OpenCode Go, Agent, HTTP | api_key, optional base_url |
| Jira | Jira node | email, api_token, base_url, deployment, optional api_version |
| Linear | Linear node | api_key, or client_id + client_secret OAuth2 |
| Sentry | Sentry node | api_token, optional base_url |
| Custom | LLM, Agent | api_key, base_url |
| Cohere | Embeddings | api_key |
| RAG: Qdrant + OpenAI | RAG, Vectorstores | qdrant_host, openai_api_key |
| RAG: Psql + OpenAI | RAG, Vectorstores | openai_api_key (vectors stored in Heym's own Postgres via pgvector) |
| RAG: Custom Embeddings | RAG, Vectorstores | embedding_base_url, embedding_model, embedding_dimensions, db_type, optional embedding_api_key, plus qdrant_host when db_type is qdrant |
| Grist | Grist node | api_key, server_url |
| Google Sheets | Google Sheets node | client_id, client_secret + OAuth2 consent |
| Google Drive | Google Drive node | client_id, client_secret + OAuth2 consent (full Drive scope) |
| BigQuery | BigQuery node | client_id, client_secret + OAuth2 consent |
| Supabase | Supabase node | supabase_url, supabase_key, optional supabase_schema |
| ClickHouse | ClickHouse node | host, port, username, password, database, secure |
| Notion | Notion node | api_token, or client_id + client_secret OAuth |
| Amazon S3 | Amazon S3 node | aws_access_key_id, aws_secret_access_key, aws_region |
| SMTP | Send Email | host, port, email, password |
| IMAP | IMAP Trigger node | imap_host, imap_port, imap_username, imap_password |
| Telegram | Telegram Trigger node, Telegram node | bot_token, optional secret_token |
| Discord | Discord node | webhook_url |
| Discord Trigger | Discord Trigger node | public_key |
| RabbitMQ | RabbitMQ node | rabbitmq_host, rabbitmq_username, rabbitmq_password |
| Redis | Redis node | host, port, password |
| Slack | Slack node | webhook_url |
| Slack Trigger | Slack Trigger node | signing_secret |
| Bearer | HTTP node | token |
| Header | HTTP node | header_key, header_value |
| FlareSolverr | Crawler node | flaresolverr_url |
GitHub
The GitHub credential stores a GitHub personal access token (PAT) so workflows can call the GitHub REST API through the GitHub node, pass the token into MCP servers such as @modelcontextprotocol/server-github, or use it from the HTTP node for custom REST calls.
Required Fields
| Field | Description |
|---|---|
api_key | GitHub personal access token (github_pat_... fine-grained PAT or classic ghp_... PAT) |
Optional Fields
| Field | Description |
|---|---|
base_url | GitHub API base URL for GitHub Enterprise Server (for example https://github.example.com/api/v3) |
Notes
- Fine-grained personal access tokens are recommended when possible because you can scope them to specific repositories and permissions.
- Leave
base_urlempty for GitHub.com. For GitHub Enterprise Server, use the full REST API endpoint including/api/v3(for examplehttps://github.example.com/api/v3), not the server's web UI root such ashttps://github.example.com. - This credential currently models PAT-based auth only. To access organization repositories, use a PAT that has been granted the required organization/repository permissions.
- GitHub App installation tokens and GitHub App setup flows are not first-class in the Heym UI today.
- Prefer the GitHub node for native repository, user, issue, pull request, review, release, Actions workflow, traffic, and file operations. Use the HTTP node only when you need endpoints or payloads the GitHub node does not cover.
- Use the Agent node with MCP by passing
$credentials.YourGitHubCredentialinto an MCP connection environment variable such asGITHUB_PERSONAL_ACCESS_TOKEN. - GitHub's REST API commonly expects
Authorization: Bearer <token>plusAccept: application/vnd.github+json. - When editing a GitHub credential, leaving the GitHub Enterprise
base_urlempty preserves the existing endpoint. Enter a new URL only when you want to change that endpoint.
Used By
OpenAI Codex
The OpenAI Codex credential authenticates the Codex node. It is separate from the OpenAI API key credential used by LLM, Agent, and RAG nodes.
Authentication Modes
| Mode | Description |
|---|---|
| Sign in with ChatGPT (recommended) | OAuth (PKCE) sign-in that uses your ChatGPT Plus/Pro subscription, so runs avoid per-token API costs. Heym stores and auto-refreshes the token bundle. |
| Access token | A ChatGPT/Codex access_token passed only to the local Codex CLI process. |
Notes
- API keys are rejected for this credential type.
- Codex tokens are not exposed through
$credentials.Name. - The Codex node also needs a GitHub credential for repository clone, branch push, and draft PR creation.
Used By
OpenCode Go
The OpenCode Go credential authenticates the OpenCode Go node. It stores an OpenCode Go gateway API key (from opencode.ai/go) and an optional gateway base URL.
Fields
| Field | Description |
|---|---|
| API Key | OpenCode Go gateway API key (required). |
| Gateway Base URL | Optional; defaults to https://opencode.ai/zen/go/v1. Override only for a self-hosted or proxied gateway. |
Notes
- The API key is passed only to the OpenCode CLI process inside a hardened container.
- The OpenCode Go node also needs a GitHub credential for repository clone, branch push, and pull request creation. The GitHub token is never placed inside the sandbox container.
Used By
Linear
The Linear credential supports either a personal API key or OAuth2 for the Linear node. Heym sends native GraphQL queries to Linear for workspace metadata, projects, issues, and comments.
Setup
Choose one authentication mode:
Personal API key
- In Linear, open Settings → Security & Access → Personal API keys.
- Create a key with access to the workspace you want to automate.
- Paste the key into a Linear credential in Heym and use Test Connection to verify it.
OAuth2
- Create a Linear OAuth application.
- Register
{FRONTEND_URL}/api/credentials/linear/oauth/callbackas the redirect URI. - In Heym Dashboard → Credentials → New → type Linear.
- Choose OAuth2, enter the Client ID and Client Secret, then click Connect.
Required Fields
| Mode | Field | Description |
|---|---|---|
| Personal API key | api_key | Linear personal API key, commonly prefixed with lin_api_ |
| OAuth2 | client_id | Client ID from the Linear OAuth application |
| OAuth2 | client_secret | Client Secret from the Linear OAuth application |
OAuth tokens (access_token, refresh_token, token_expiry) are stored and refreshed automatically.
Notes
- Personal API keys and OAuth tokens act as the Linear user who created or authorized them.
- Linear OAuth uses the scopes
read,write,issues:create,comments:create. - Use Test Connection in the credential dialog to verify the API key or OAuth token against the Linear API.
- Use List Teams and List Projects in the Linear node to discover UUIDs before creating or filtering issues.
- Use List Workflow States and List Team Members to discover state and assignee UUIDs for updates.
- Rotate an API key by editing the credential and entering the replacement value. If you rotate OAuth app secrets, reconnect the credential via Connect.
Used By
Jira
The Jira credential stores Jira Basic auth credentials, Jira site base URL, deployment mode, and optional REST API version for the Jira node. Use cloud for Jira Cloud or data_center for Jira Data Center / Server.
Setup
Jira Cloud
- In Atlassian account settings, create an API token.
- In Heym Dashboard → Credentials → New → type Jira.
- Enter the Atlassian email, API token, and Jira site URL such as
https://your-domain.atlassian.net. - Use Test Connection to verify the credential.
Jira Data Center / Server
- Select Jira Data Center / Server as the deployment.
- Enter the Jira username and password used for Basic auth.
- Enter the Jira site URL, for example
https://jira.example.com. - Use Test Connection to verify the credential.
Fields
| Field | Description |
|---|---|
email | Jira Cloud Atlassian account email, or Jira Data Center / Server username |
api_token | Jira Cloud Atlassian API token, or Jira Data Center / Server password for Basic auth |
base_url | Jira site base URL |
deployment | cloud for Jira Cloud or data_center for Jira Data Center / Server |
api_version | REST API version; defaults to 3 for Jira Cloud. Data Center / Server uses v2 |
Notes
- The Jira node sends issue descriptions and comments as Atlassian Document Format text documents for Jira Cloud REST API v3. Data Center / Server credentials send plain text.
- Data Center / Server currently supports username/password Basic auth only. Personal access tokens and Bearer auth are not supported yet.
- Attachment upload accepts base64 or data URL content and is subject to the platform file size limit (default 99 MB). Attachment download can return base64 content when enabled.
- User creation, deletion, and issue notification require the authenticated Jira account to have the relevant Jira site or organization permissions.
- Use List Projects, Search Issues, and List Transitions to discover project keys, issue keys, and transition IDs.
- For custom endpoints not covered by the Jira node, use the HTTP node with Jira Basic Auth (
email:api_tokenfor Cloud orusername:passwordfor Data Center / Server) in the cURL command, or a Header credential with the matchingAuthorization: Basic <base64(user:secret)>value.
See also:
Sentry
The Sentry credential stores an auth token for the Sentry node. Heym uses Sentry's REST API for organization, project, team, issue, event, and release operations.
Required Fields
| Field | Description |
|---|---|
api_token | Sentry auth token with access to the organizations and projects you automate |
Optional Fields
| Field | Description |
|---|---|
base_url | Optional root URL for self-hosted Sentry, for example https://sentry.example.com |
Notes
- Leave
base_urlempty for Sentry SaaS. - Use Test Connection to confirm the token can list visible organizations.
- For custom REST calls, use
$credentials.YourSentryCredentialas the bearer token.
Used By
Qdrant
Qdrant is an open-source vector database used for semantic search and RAG (Retrieval Augmented Generation).
Required Fields
| Field | Description |
|---|---|
qdrant_host | Full URL to your Qdrant instance (e.g. http://localhost:6333 or a cloud endpoint) |
openai_api_key | OpenAI API key used to generate embeddings when indexing and searching documents |
Notes
- Qdrant collections are managed from the Vectorstores tab. Each vector store maps to a Qdrant collection.
- The RAG node uses a vector store (which references a Qdrant credential) — it does not reference the credential directly.
- If your Qdrant instance requires an API key, include it in the
qdrant_hostvalue or configure Qdrant accordingly; the current integration does not have a separate Qdrant API key field. - Self-hosted Qdrant: use the official Docker image and expose port
6333.
Used By
- RAG node (via vector store)
- Vectorstores Tab
Custom Embeddings (RAG)
By default RAG embeddings come from OpenAI. A RAG: Custom Embeddings credential points at any OpenAI-compatible embeddings endpoint instead — Ollama, vLLM, Text Embeddings Inference, LM Studio, Together, or a hosted gateway — and names the vector store it writes into.
Required Fields
| Field | Description |
|---|---|
embedding_base_url | Endpoint URL including the /v1 path, e.g. http://localhost:11434/v1 |
embedding_api_key | Optional. Local servers usually need no key |
embedding_model | Model name as the endpoint expects it, e.g. nomic-embed-text |
embedding_dimensions | Vector width the model returns (default 1536) |
embedding_request_dimensions | Optional. Ask the endpoint to return embedding_dimensions instead of the model's native width |
db_type | qdrant or pgvector |
qdrant_host, qdrant_port, qdrant_api_key | Qdrant connection, required when db_type is qdrant |
Notes
- Qdrant accepts any dimension count. Each collection is created at the width this credential declares, so the Dimensions field is freely editable.
- Postgres (pgvector) requires exactly 1536 dimensions. Its column is a fixed
vector(1536), so the Dimensions field is pinned to 1536 and a credential declaring any other width is rejected at save time. - Shortening for pgvector. When the store is Postgres, the dialog offers Ask the
endpoint to return 1536 dimensions. This sends the
dimensionsrequest parameter, which models trained with Matryoshka representations (OpenAItext-embedding-3-*,nomic-embed-text-v1.5,jina-v3and similar) honour by returning a shortened, still-meaningful vector. Endpoints that do not support the parameter reject the request, and endpoints that accept but ignore it produce a clear error naming the width actually returned. Heym never truncates vectors itself, because slicing the output of a non-Matryoshka model degrades retrieval quality silently. The option is not offered for Qdrant, which can size a collection to any width. - Use Test Connection in the credential dialog to embed a probe string and see the width the model actually returns before you create a store.
- The
dimensionsrequest parameter is only sent to OpenAI itself, since most OpenAI-compatible servers reject unknown parameters. The model's native width is validated against the credential instead. - The existing RAG: Qdrant + OpenAI and RAG: Psql + OpenAI credentials are unchanged and keep working.
Used By
- RAG node (via vector store)
- Vectorstores Tab
Postgres (pgvector)
Heym can also store vectors inside its own Postgres database using the pgvector extension — no external vector service required. Create a RAG: Psql + OpenAI credential and use it when creating a vector store, then pick Postgres (pgvector) in the RAG node's Database dropdown.
Required Fields
| Field | Description |
|---|---|
openai_api_key | OpenAI API key used to generate embeddings when indexing and searching documents |
Notes
- No host/port is needed — vectors are written to Heym's own database; Heym never connects to a different database.
- Every RAG feature available with Qdrant (insert, search, metadata filters, Cohere reranking, cloning, sharing) works identically with the Postgres backend.
- Requires the
vectorextension. Heym keeps the officialpostgres:16image unchanged (so existing data is never touched) and auto-installs thepostgresql-16-pgvectorpackage at startup —run.sh,deploy.sh, andrun_e2e.shall handle this. The install is non-fatal: if it cannot run (e.g. no network), Qdrant RAG keeps working and the Postgres backend stays inactive (the migration skips the table gracefully). - If you run the published single-container image (
ghcr.io/heymrun/heym) against your own external Postgres, that database must support thevectorextension (Heym cannot install it into a database it does not manage). Without it, creating or uploading to a Postgres vector store returns a clear message and Qdrant RAG continues to work.
Used By
- RAG node (via vector store)
- Vectorstores Tab
Grist
Grist is a spreadsheet/database hybrid that supports structured data and formulas. The Grist credential allows Heym to read and write Grist documents.
Required Fields
| Field | Description |
|---|---|
api_key | Grist API key (found in Profile → API Key on your Grist instance) |
server_url | Base URL of your Grist server (e.g. https://docs.getgrist.com for Grist Cloud, or your self-hosted URL) |
Notes
- The Grist node requires the Document ID (from the Grist document URL) and Table ID in its configuration — these are not part of the credential.
- For self-hosted Grist, set
server_urlto your instance's domain. - Column IDs in Grist use underscores (e.g.
User_Name), not display labels. Use thelistColumnsoperation to discover them.
Used By
Google Sheets (OAuth2)
The Google Sheets credential connects Heym to the Google Sheets API using an OAuth2 "Bring Your Own App" model. You supply a Google Cloud OAuth2 Client ID and Client Secret, then authorize access via a browser popup. Tokens are refreshed automatically in the background.
Setup
- Open Google Cloud Console → APIs & Services → Library → search for and enable Google Sheets API.
- Go to Credentials → Create Credentials → OAuth client ID → application type Web application.
- Under Authorized redirect URIs add:
https://your-heym-domain/api/credentials/google-sheets/oauth/callback - Copy the generated Client ID and Client Secret.
- In Heym Dashboard → Credentials → New → type Google Sheets (OAuth2).
- Enter the Client ID, Client Secret, and a name, then click Connect to open the Google consent popup and authorize access.
Required Fields
| Field | Description |
|---|---|
client_id | OAuth2 Client ID from Google Cloud Console |
client_secret | OAuth2 Client Secret from Google Cloud Console |
Tokens (access_token, refresh_token, token_expiry) are stored and refreshed automatically — you do not manage them directly.
Notes
- The OAuth2 consent screen requires the spreadsheets scope (
https://www.googleapis.com/auth/spreadsheets). - Heym uses the refresh token to obtain new access tokens before they expire (60-second safety buffer).
- If you rotate the Client Secret in Google Cloud Console, reconnect the credential via the Connect button.
- Production: Set backend
FRONTEND_URLto the exact public URL users open in the browser (scheme + host, e.g.https://heym.example.com). Heym builds the Google OAuth redirect URI from this value only — it does not trustOriginorX-Forwarded-*headers (client-controlled). Register{FRONTEND_URL}/api/credentials/google-sheets/oauth/callbackin Google Cloud Console.
Used By
Google Drive (OAuth2)
The Google Drive credential connects Heym to the Google Drive API using the same OAuth2 "Bring Your Own App" model as Google Sheets. You supply a Google Cloud OAuth2 Client ID and Client Secret, then authorize access via a browser popup. Tokens are refreshed automatically in the background.
Setup
- Open Google Cloud Console → APIs & Services → Library → search for and enable Google Drive API.
- Go to Credentials → Create Credentials → OAuth client ID → application type Web application.
- Under Authorized redirect URIs add:
https://your-heym-domain/api/credentials/google-drive/oauth/callback - Copy the generated Client ID and Client Secret.
- In Heym Dashboard → Credentials → New → type Google Drive (OAuth2).
- Enter the Client ID, Client Secret, and a name, then click Connect to open the Google consent popup and authorize access.
Required Fields
| Field | Description |
|---|---|
client_id | OAuth2 Client ID from Google Cloud Console |
client_secret | OAuth2 Client Secret from Google Cloud Console |
Tokens (access_token, refresh_token, token_expiry) are stored and refreshed automatically — you do not manage them directly.
Scope
Google Drive requests the full Drive scope (https://www.googleapis.com/auth/drive).
This is required because the node operates on files you already own. The narrower drive.file scope only grants access to files the OAuth client itself created, which would make listFolderFiles, updateFile, removeFile, and removeFolder see nothing of your existing Drive.
Because you supply your own Client ID and Secret from your own Google Cloud project, the Google app-verification requirements for this scope apply to your project, not to Heym.
Notes
- Heym uses the refresh token to obtain new access tokens before they expire (60-second safety buffer).
- If you rotate the Client Secret in Google Cloud Console, reconnect the credential via the Connect button.
- Shared drives are supported — the node sets
supportsAllDriveson every API call. - Production: Set backend
FRONTEND_URLto the exact public URL users open in the browser. Heym builds the Google OAuth redirect URI from this value only — it does not trustOriginorX-Forwarded-*headers. Register{FRONTEND_URL}/api/credentials/google-drive/oauth/callbackin Google Cloud Console. - See Credential Sharing before sharing this credential with a team.
Used By
BigQuery (OAuth2)
The BigQuery credential connects Heym to the Google BigQuery API using an OAuth2 "Bring Your Own App" model. You supply a Google Cloud OAuth2 Client ID and Client Secret, then authorize access via a browser popup. Tokens are refreshed automatically in the background.
Setup
- Open Google Cloud Console → APIs & Services → Library → search for and enable BigQuery API.
- Go to Credentials → Create Credentials → OAuth client ID → application type Web application.
- Under Authorized redirect URIs add:
https://your-heym-domain/api/credentials/bigquery/oauth/callback - Copy the generated Client ID and Client Secret.
- In Heym Dashboard → Credentials → New → type BigQuery (OAuth2).
- Enter the Client ID, Client Secret, and a name, then click Connect to open the Google consent popup and authorize access.
Required Fields
| Field | Description |
|---|---|
client_id | OAuth2 Client ID from Google Cloud Console |
client_secret | OAuth2 Client Secret from Google Cloud Console |
Tokens (access_token, refresh_token, token_expiry) are stored and refreshed automatically.
Notes
- The OAuth2 consent screen requires the BigQuery scope (
https://www.googleapis.com/auth/bigquery). - Production: Set backend
FRONTEND_URLto the public URL. Register{FRONTEND_URL}/api/credentials/bigquery/oauth/callbackin Google Cloud Console.
Used By
Supabase
The Supabase credential connects Heym to a Supabase project's PostgREST API so workflows can query and mutate Postgres-backed tables.
Required Fields
| Field | Description |
|---|---|
supabase_url | Project base URL, for example https://your-project.supabase.co |
supabase_key | API key with access to the target tables |
supabase_schema | Optional default schema (defaults to public) |
Notes
- The Supabase node talks to
/rest/v1/<table>and supports operator filters (eq,neq,gt,gte,lt,lte,like,ilike,is,in, and related PostgREST operators) plus nestedor/andlogical groups. - For write operations, prefer a key intended for trusted server-side use with the minimum required table permissions.
- Nodes can override the schema per step even if the credential defines a default schema.
Used By
ClickHouse
The ClickHouse credential connects Heym to an external ClickHouse database over its HTTP interface so workflows can run SQL, CRUD, and count operations against OLAP tables.
Required Fields
| Field | Description |
|---|---|
host | HTTP host without scheme, for example your-instance.clickhouse.cloud |
port | HTTP interface port (8443 for HTTPS, 8123 for HTTP) |
username | ClickHouse user (defaults to default) |
password | User password (optional) |
database | Target database (defaults to default) |
secure | Use HTTPS when true (required for ClickHouse Cloud) |
Notes
- The ClickHouse node uses the official
clickhouse-connectHTTP client and parameterizes filter and value bindings. updateandremovemap toALTER TABLE ... UPDATEandDELETE FROM, which are asynchronous ClickHouse mutations; both require a filter.upsertperforms anINSERTand assumes aReplacingMergeTreetable for merge-on-key behavior.- Use Test connection in the credential dialog to verify reachability.
Used By
Notion
The Notion credential supports either an internal integration token or a public-integration OAuth connection. OAuth lets each user authorize a Notion workspace from Heym instead of manually copying a token.
Required Fields
| Mode | Field | Description |
|---|---|---|
| Internal token | api_token | Internal integration token (ntn_...) |
| OAuth | client_id | Client ID from a Notion public integration |
| OAuth | client_secret | Client Secret from the Notion public integration |
The OAuth callback stores access_token, auth_mode, workspace_id, workspace_name, and bot_id
automatically. Any previous internal api_token is removed when OAuth completes. Register this
redirect URI in Notion:
{FRONTEND_URL}/api/credentials/notion/oauth/callback.
OAuth setup flow
- Choose OAuth in the credential dialog, enter a name, Client ID, and Client Secret.
- Click Connect and authorize the workspace in the Notion popup.
- For a new credential, Heym creates the credential record when you click Connect.
- Complete authorization in the popup, then click Save to return to the credentials list.
- A connected credential shows
connected (Workspace Name)in the list. Pending OAuth credentials showNot connecteduntil authorization finishes.
Use Test Connection in the credential dialog to verify either an internal token or a completed OAuth authorization. When editing, leaving the token field blank preserves the stored internal token.
Both internal tokens and OAuth access tokens are available through
$credentials.CredentialName for custom HTTP calls that need a Notion
bearer token.
Notes
- Internal integrations require the relevant pages, databases, and data sources to be shared.
- OAuth users choose the workspace/pages during Notion authorization.
- OAuth application credentials are encrypted inside the Notion credential. The callback reloads them server-side; the secret is not embedded in OAuth state.
- Connected OAuth credentials display the workspace name; pending OAuth credentials show
Not connecteduntil authorization completes. - Production: Set backend
FRONTEND_URLto the public browser URL (scheme + host, no trailing slash). The Notion redirect URI must match exactly:{FRONTEND_URL}/api/credentials/notion/oauth/callback. - The node uses API version
2026-03-11and currentdata_sourceterminology. See the Notion node article for migration guidance from olderarchived,after, or database-query examples. - Old search filters with object value
databaseare normalized todata_source.
Used By
SMTP (Email)
The SMTP credential stores email server connection details for sending outgoing mail.
Required Fields
| Field | Description |
|---|---|
host | SMTP server hostname (e.g. smtp.gmail.com) |
port | SMTP port (typically 587 for STARTTLS, 465 for SSL) |
email | Sender email address |
password | SMTP password or App Password |
Common SMTP Providers
| Provider | Host | Port | Notes |
|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | Requires an App Password (2FA must be enabled) |
| Outlook / Office 365 | smtp.office365.com | 587 | Use your Microsoft account credentials |
| Mailgun | smtp.mailgun.org | 587 | Use Mailgun SMTP credentials from your domain settings |
| SendGrid | smtp.sendgrid.net | 587 | Use apikey as username and an API key as password |
| Custom / Self-hosted | your domain | 587 / 465 | Postfix, Exim, etc. |
Notes
- Gmail requires an App Password instead of your regular password when 2-Step Verification is enabled.
- Port
587uses STARTTLS (starts plaintext, upgrades to TLS). Port465uses implicit TLS (SSL from the start).
Used By
IMAP (Inbound Email)
The IMAP credential stores connection details for monitoring an inbox with the IMAP Trigger node.
Required Fields
| Field | Description |
|---|---|
imap_host | IMAP server hostname (for example imap.gmail.com) |
imap_port | IMAP port (993 for SSL/TLS on most providers) |
imap_username | Mailbox username or full email address |
imap_password | Password or provider-specific app password |
Optional Fields
| Field | Description |
|---|---|
imap_mailbox | Mailbox folder to monitor (default: INBOX) |
imap_use_ssl | Enable SSL/TLS (recommended; default: true) |
Notes
- The IMAP trigger baselines the current mailbox on first poll and then only processes newer email.
- Gmail, Microsoft 365, and other hosted providers often require an app password or similar IMAP-specific secret.
- Attachment content is not downloaded into the workflow payload; Heym exposes attachment metadata only.
Used By
- IMAP Trigger node
- Triggers (IMAP as workflow trigger)
RabbitMQ
RabbitMQ is an open-source message broker. The RabbitMQ credential stores connection details for publishing to and consuming from queues and exchanges.
Required Fields
| Field | Description |
|---|---|
rabbitmq_host | AMQP connection URL (e.g. amqp://localhost:5672) |
rabbitmq_username | RabbitMQ username (default: guest) |
rabbitmq_password | RabbitMQ password (default: guest) |
Virtual Hosts
To connect to a specific virtual host, include it in the rabbitmq_host URL:
amqp://username:password@hostname:5672/vhostIf using the default vhost, the path / can be omitted.
Delayed Message Plugin
The RabbitMQ node supports the rabbitmq_delayed_message_exchange plugin. When this plugin is enabled on your RabbitMQ server, you can set a delay (in milliseconds) on outgoing messages using the rabbitmqDelayMs field on the node.
The node sets the x-delay header on the published message. The exchange type must be x-delayed-message for delays to take effect.
To enable the plugin on a self-hosted RabbitMQ instance:
rabbitmq-plugins enable rabbitmq_delayed_message_exchangeWhen the plugin is not installed, the x-delay header is ignored and messages are delivered immediately.
Used By
- RabbitMQ node
- Triggers (RabbitMQ as workflow trigger)
Amazon S3
The Amazon S3 credential connects Heym to Amazon S3. Use it with the Amazon S3 node to manage buckets and folders, upload and download objects, copy keys, and list or delete objects from workflows.
Required Fields
| Field | Description |
|---|---|
aws_access_key_id | AWS IAM access key ID |
aws_secret_access_key | Secret access key paired with the access key ID |
aws_region | AWS region where buckets live (e.g. us-east-1) |
Optional Fields
| Field | Description |
|---|---|
aws_session_token | Temporary session token when using AWS STS credentials |
Notes
- The credential uses standard AWS SigV4 authentication via boto3.
- Upload operations currently send UTF-8 text content; downloads can return text or base64 for binary objects.
Used By
Redis
Redis is an in-memory key-value store used for caching and fast data access.
Required Fields
| Field | Description |
|---|---|
host | Redis server hostname or IP (e.g. localhost) |
port | Redis port (default: 6379) |
password | Redis password (leave empty if not set) |
Used By
Slack
The Slack credential stores an Incoming Webhook URL for posting messages to Slack channels.
Required Fields
| Field | Description |
|---|---|
webhook_url | Slack Incoming Webhook URL (from your Slack app configuration) |
Notes
- Create an Incoming Webhook at api.slack.com/apps → your app → Incoming Webhooks.
- Each webhook is scoped to a specific channel. Create multiple credentials for different channels.
Used By
Telegram
The Telegram credential stores a Bot Token and an optional Webhook Secret Token for bot-based workflows.
Required Fields
| Field | Description |
|---|---|
bot_token | Telegram Bot API token from BotFather |
Optional Fields
| Field | Description |
|---|---|
secret_token | Shared secret verified against x-telegram-bot-api-secret-token on incoming webhooks |
Notes
- Use the same credential for both Telegram Trigger and Telegram.
- Register the webhook manually with Telegram's
setWebhookAPI using the URL shown in the Telegram Trigger node panel. chatIdin the Telegram node can be a literal ID or an expression like$telegramEvent.message.chat.id.
Used By
HTTP Auth (Bearer & Header)
These credentials are used by the HTTP node to authenticate outgoing requests.
Bearer
Attaches an Authorization: Bearer <token> header to HTTP requests.
| Field | Description |
|---|---|
token | The bearer token value |
Header
Attaches a custom header to HTTP requests.
| Field | Description |
|---|---|
header_key | Header name (e.g. X-Api-Key) |
header_value | Header value |
Both types can also be referenced via $credentials.CredentialName in the Expression DSL for dynamic use in any node that accepts expressions.
Used By
LLM Providers (OpenAI, Google, Custom, Cohere)
These credentials power AI nodes.
| Type | Description |
|---|---|
| OpenAI | API key for GPT models and OpenAI embeddings |
| API key for Gemini models | |
| Custom | API key + base URL for OpenAI-compatible endpoints (Ollama, vLLM, LM Studio, etc.) |
| Cohere | API key for Cohere embeddings |
OpenAI Prompt Caching
OpenAI automatically caches the static (unchanging) prefix of your system prompt — no extra configuration required. Repeated workflow runs that share the same system prompt prefix benefit from cached token pricing, which reduces both cost and latency. This is especially useful when you have long, fixed instructions and only the user message changes between runs. Monitor cache hit rates and token savings in the Traces tab or the OpenAI usage dashboard to optimize your prompt structure for maximum cache reuse.
Used By
- LLM node
- Agent node
- RAG node (OpenAI embeddings via Qdrant credential)
FlareSolverr
FlareSolverr is a proxy server for bypassing Cloudflare and similar bot-protection challenges.
Required Fields
| Field | Description |
|---|---|
flaresolverr_url | URL of your FlareSolverr instance (e.g. http://localhost:8191) |
Used By
Related
- Credentials – Overview of credentials and how nodes use them
- Credentials Tab – Add and manage credentials
- Credentials Sharing – Share credentials with users and teams
- Security – Encryption at rest, access control
- Expression DSL –
$credentialssyntax for dynamic access