Skip to content

casen connector

casen connector generates Camunda REST connector element templates from OpenAPI 3.x and Swagger 2.x specifications. Point it at a local file or pick from the built-in catalog of 30 popular APIs and get ready-to-import .json templates for Camunda Modeler.

casen connector
├── generate — generate templates from a spec file or catalog entry
└── catalog — list all built-in catalog entries

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.