Skip to main content

Configure integrations in the app DSL

Integration credentials are installation data, not source code. A manifest declares workflow behavior; users select or authorize the account connection separately.

Discover the live catalog​

The target server is the source of truth for executable node identifiers and parameter schemas:

GET /api/v1/apps-layer/platform-schema
GET /api/v1/actions/catalog
GET /integrations/api/catalog

Use workflowNodes.nodes from the platform schema or data.actions from the action catalog. Integration-backed nodes include their provider grouping, required credentials, inputs, outputs, and configurable properties.

:::warning Do not guess node identifiers The enabled actions can differ by server and integration configuration. Copy the exact type or identifier reported by the target server. :::

Call an integration action​

Use the generic node builder for any catalog action:

import {defineApp, nodes, resources} from '@twl-tool/app-sdk';

export default defineApp({
key: 'crm-follow-up',
name: 'CRM Follow-up',
version: '1.0.0',
permissions: ['workflows.execute'],
resources: {
workflowDefinitions: {
createFollowUp: resources.workflow({
title: 'Create follow-up task',
desiredState: 'active',
definition: {
version: 1,
default_runner: 'builtin',
triggers: [{key: 'run', type: 'manual', launch: true}],
steps: [
nodes.call('create-task', '<catalog-node-identifier>', {
connectionId: '{{ input.connectionId }}',
title: '{{ input.title }}',
dueDate: '{{ input.dueDate }}',
}),
],
},
}),
},
},
});

The example parameter names are illustrative. Use the selected node's live properties and credentials definitions.

Connection rules​

  • Never place access tokens, client secrets, API keys, or refresh tokens in a manifest.
  • Do not ship a user-specific connection ID as a default.
  • Prefer an installation setting or workflow input for connection selection.
  • Treat reconnect and revoked states as normal runtime conditions.
  • Request only the app permissions needed by the surrounding workflow and surfaces.

Integration capability types​

TypeExecution modelBest for
Authenticated requestImmediate provider API callAn endpoint that does not need a reusable catalog action
ActionOn-demand typed functionReads, writes, and multi-step provider operations
SyncScheduled or incremental ingestionIndexes, reporting tables, and retrieval pipelines
Provider webhookExternal service pushes an eventNear-real-time automation
Native triggerTWL Tool emits or accepts an eventManual, schedule, webhook, workflow, and browser automation

Provider actions and events are additive to the five native trigger modules. See Triggers for their exact DSL shapes and routes.

Validate against the target server​

npx twl-tool validate twl-tool.app.ts --url https://twl-tool.example
npx twl-tool plan twl-tool.app.ts --url https://twl-tool.example --organization acme

Validation checks the manifest. Planning also resolves logical references and reports the account-scoped resources that a deployment would create or change.