Integrations let your workflows call Slack, Google Calendar, GitHub, OpenAI and more, using OAuth or API-key connections Anythink stores encrypted for you.
An integration lets your project call an external service — post a Slack message, create a Google Calendar event, read a GitHub repository, generate text with Claude — without writing the HTTP calls or storing tokens yourself. Anythink defines each provider; you connect your project to it and call it from a workflow's Integration step.
This page explains the model. To connect your first integration, see Post to Slack when a record is created.
| Part | What it is |
|---|---|
| Definition | A provider: Slack, GitHub, Google Calendar. Anythink maintains these — each has an auth type, the OAuth scopes it requests and its operations. |
| Connection | Your project's link to a definition: a name plus encrypted credentials. A project can hold several connections to the same provider. |
| Operation | One thing a provider can do, such as Slack's send-message or Google Calendar's create-event, with a fixed set of inputs. |
See what's available under Settings › Integrations in the Anythink dashboard, or with anythink integrations list and anythink integrations connections list. Integration providers and operations reference lists every provider and operation.
A connection belongs either to the whole project or to one user:
The dashboard creates project connections. Create user connections with the CLI's --user-connection flag or is_user_connection: true on the API — see Let each user connect their own account.
Each Integration step has a Credential Source that decides which connection it uses:
| Credential Source (dashboard) | Value | Uses |
|---|---|---|
| System (shared connection) | system |
An enabled project connection for the provider. |
| Current User (first connection) | current_user |
An enabled connection visible to the user who triggered the job: their own user connection or a project connection. |
| Specific Connection (by ID) | connection |
The connection with the given ID, which can be a template such as {{ $anythink.trigger.data.connection_id }}. If no connection has that ID, the step falls back to current_user. |
| Entity Field | entity_field |
Credentials from a template that resolves to a stored credentials object, such as a secret field on the triggering record. |
When more than one connection matches system or current_user, Anythink doesn't guarantee which one it picks. Keep one enabled connection per provider for those sources, or use Specific Connection (by ID).
Each definition has one auth type:
The OAuth app belongs to your project, so the consent screen shows your app's name, and you control its scopes and redirect URLs. See Connect Slack to send messages from workflows and Connect Google Calendar to create events from workflows for the setup per provider.
Note: Google, GitHub, LinkedIn and Apple can also be used for social sign-in — letting your users log in with that provider. That's configured on the Social Sign-In tab and uses a different callback URL from integration connections. Most providers allow one callback URL per OAuth app, so use a separate OAuth app for each purpose. Google allows several redirect URIs on one OAuth client.
Connection credentials — access tokens, refresh tokens and API keys — are encrypted at rest and decrypted only on Anythink's servers when a step needs them. The dashboard, the CLI and the API return a connection's ID, name, provider, owner, enabled flag and timestamps, never its credentials.
When an OAuth access token has expired and the connection has a refresh token, the Integration step refreshes it before calling the provider and saves the new token.
Google Calendar has Google as its parent provider. If Google Calendar has no OAuth credentials of its own, it uses the Google credentials saved for your project — so a project that already has Google sign-in set up can connect Google Calendar without registering another app. Google Calendar is currently the only Google service available as an integration.
anythink integrations disable <connection-id>. Re-enable it with anythink integrations enable <connection-id>.anythink integrations disconnect <connection-id>.See Rotate, pause or disconnect an integration for the full procedure.
claude, openai or grok connection instead of Anythink's shared AI quota.| Limit | Detail |
|---|---|
| User connections | One per user, per provider, per project. Connecting the same provider again as the same user fails; disconnect the old one first. |
| Connections per provider in the dashboard | The dashboard shows and manages one connection per provider. Add more project connections with the CLI or API. |
| Connection choice | system and current_user pick any matching enabled connection, in no guaranteed order. |
| GitHub results | List operations return one page of up to 100 results. There's no page input; narrow the range with since and until where the operation has them. |
| Connection test | anythink integrations test confirms the connection exists. It doesn't call the provider — run the workflow to check the credentials work. |
| Callback URLs | Most OAuth providers allow one callback URL per app, so social sign-in and integration connections for the same provider need separate apps. |