Skip to content

casen connector

casen connector has two independent jobs: browse the 116 bundled Camunda 8 out-of-the-box connector templates (search/show — used by the AI generation pipeline to wire a plan step to a real service), and generate brand-new connector element templates from OpenAPI 3.x/Swagger 2.x specs (generate/catalog — for APIs Camunda doesn’t ship a template for).

casen connector
├── search — find a bundled OOTB connector template by name/keyword
├── show — show a bundled template's required/optional inputs
├── generate — generate new templates from an OpenAPI spec file or catalog entry
└── catalog — list all built-in OpenAPI-catalog entries (for `generate`)
Terminal window
casen connector search slack
casen connector show io.camunda.connectors.Slack.v1

search scores the 116 bundled templates by keyword match and prints a table (template id, direction, task type, description). show prints a template’s task type, direction, and its required/optional input keys — these are the keys a ProcessPlan connector step’s values object uses (see Building Processes with AI):

$ casen connector show io.camunda.connectors.Slack.v1
Slack connector (io.camunda.connectors.Slack.v1)
Task type: io.camunda:slack:1
Direction: outbound
Create a channel or send a message to a channel or user
Required inputs:
token (secret) — OAuth token
data.channel — Channel/user name/email
data.text — Message
...

A field marked (secret) should be supplied as a {{secrets.NAME}} placeholder, never a literal credential. This is the same catalog @bpmnkit/connectorslistConnectors()/searchConnectors() expose programmatically.

The fastest way to get started. The catalog contains 30 popular APIs with pre-configured spec URLs and auth defaults:

Terminal window
# List all available catalog entries
casen connector catalog
# Generate templates for the Stripe API
casen connector generate --api stripe --output ./templates/
# Generate templates for GitHub with a custom ID prefix
casen connector generate --api github --id-prefix com.myorg --output ./templates/

Pass any local OpenAPI 3.x or Swagger 2.x file in YAML or JSON format:

Terminal window
casen connector generate --swagger ./openapi.yaml --output ./templates/
# JSON format works too
casen connector generate --swagger ./api-spec.json --output ./templates/
FlagDescription
--swagger <file>Path to a local OpenAPI/Swagger YAML or JSON file
--api <id>Catalog entry ID — downloads the spec automatically
--output <dir>Directory to write .json template files into
--base-url <url>Override the base URL from the spec
--id-prefix <prefix>Reverse-DNS prefix for template IDs (e.g. com.myorg)
--filter <regex>Filter operations by operationId or summary
--expand-bodyDecompose top-level request body properties into individual input fields
--auth <type>Pre-select auth type (see below)
--format <fmt>one-per-op (default) or array — all templates in one file
--dry-runPrint generated templates to stdout instead of writing files
ValueDescription
noAuthNo authentication fields
apiKeySingle API key field sent as a header
basicUsername + password (HTTP Basic)
bearerBearer token
oauth-client-credentials-flowClient ID, secret, token URL, and scopes

Auth is auto-detected from components.securitySchemes in the spec. Use --auth to override.

Use --dry-run to inspect the generated JSON before committing to files:

Terminal window
casen connector generate --api resend --dry-run

Large APIs (GitHub, Stripe) produce hundreds of templates. Use --filter to narrow it down:

Terminal window
# Only generate templates for issue-related operations
casen connector generate --api github --filter "issues" --output ./templates/
# Only POST and PUT operations (filter on summary/operationId)
casen connector generate --api stripe --filter "create|update" --output ./templates/

By default the request body is a single FEEL Text field. Use --expand-body to decompose top-level properties into individual typed input fields — useful for simple, well-documented APIs:

Terminal window
casen connector generate --api resend --expand-body --output ./templates/
Terminal window
casen connector generate --api slack --format array --output ./templates/
# Writes: ./templates/slack.json (array of all templates)

Useful when targeting a self-hosted or staging instance:

Terminal window
casen connector generate --swagger ./openapi.yaml \
--base-url https://staging-api.mycompany.com \
--output ./templates/

Each operation in the spec becomes one Camunda element template JSON file. The template pre-configures a bpmn:ServiceTask with job type io.camunda:http-json:1 and wires up:

  • Method and URL — hidden fixed fields; path parameters become FEEL expressions (e.g. ="https://api.example.com/users/"+userId)
  • Path parameters — individual String input fields
  • Query parameters — mapped to a FEEL context object
  • Headers — mapped to a FEEL context object
  • Request body — single FEEL Text field, or individual typed fields with --expand-body
  • Authentication — full 5-type auth block with visibility conditions; pre-selected to the detected or specified auth type
  • Output mapping, error expression, retries, and timeout — standard connector fields

Import the generated .json files into Camunda Modeler via File → Import Element Templates or by placing them in your .camunda/element-templates/ directory.

Terminal window
casen connector catalog
IDNameDefault auth
githubGitHub REST APIbearer
cloudflareCloudflare APIbearer
stripeStripe APIbasic
notionNotion APIbearer
resendResend Email APIbearer
openaiOpenAI APIbearer
figmaFigma APIbearer
twilioTwilio Messaging APIbasic
slackSlack Web APIbearer
jiraAtlassian Jira APIbearer
hubspotHubSpot CRM APIoauth-client-credentials-flow
discordDiscord APIbearer
pagerdutyPagerDuty APIapiKey
zoomZoom APIoauth-client-credentials-flow
mailchimpMailchimp APIapiKey
asanaAsana APIbearer
sendgridSendGrid Mail APIbearer
paypalPayPal Payments APIoauth-client-credentials-flow
plaidPlaid APIapiKey
vercelVercel APIbearer
anthropicAnthropic APIapiKey
shopifyShopify Admin APIbearer
datadogDatadog APIapiKey
sentrySentry APIbearer
intercomIntercom APIbearer
contentfulContentful Management APIbearer
airtableAirtable APIbearer
twitchTwitch Helix APIoauth-client-credentials-flow
klaviyoKlaviyo APIapiKey
brexBrex APIoauth-client-credentials-flow

The underlying generator is available as a standalone package for use in Node.js scripts and build pipelines. See @bpmnkit/connector-gen.