Skip to main content
DEKLARATIVE
Menu

Activities

56 activities ship. Five languages. One signature.

Activities are the building blocks workflows call into — HTTP requests, database queries, email sends, Slack messages, OCR runs, signature collection. Deklarative ships 56 activities in the standard library, each with implementations in TypeScript, Kotlin, Go, Rust, and Python where it makes sense.

Custom activities take ~30 lines: a function with a typed input, a typed output, and a registration call. The workflow engine handles retries, timeouts, idempotency, and observability for free.

HTTPGraphQLWebSocketgRPC
EmailSMSSlackTeamsWhatsApp
DatabaseTransformCSVJSONXMLMarkdown
CompressCryptoHashPGP
WaitPollingCronConditionalLoop
Data filterData mergeData validate
OCRPDF extractHTML extractRSS
Shell execSSHTerraformPulumi
TranslateGeocodingE-signatureLDAP
User taskEntityCallbackNotification

Plus integrations with Stripe, Twilio, SendGrid, Mailgun, AWS S3, Google Drive, OneDrive, Salesforce, HubSpot, Jira, Linear, GitHub, GitLab, Auth0, Okta, Active Directory, and more via the standard HTTP and OAuth2 activities.

Bring your own activity

Custom in 30 lines.

// activities/refund-stripe.ts
import { defineActivity } from '@deklarative/workflow';
import Stripe from 'stripe';

export const refundStripe = defineActivity({
  name: 'refund.stripe',
  input: z.object({ chargeId: z.string(), amount: z.number().optional() }),
  output: z.object({ refundId: z.string() }),
  retry: { maxAttempts: 3, backoff: 'exponential' },
  idempotencyKeyFrom: (i) => i.chargeId,
  async handler(input, ctx) {
    const stripe = new Stripe(ctx.secrets.STRIPE_SECRET_KEY);
    const refund = await stripe.refunds.create({
      charge: input.chargeId,
      amount: input.amount,
    }, { idempotencyKey: ctx.idempotencyKey });
    return { refundId: refund.id };
  },
});

Same pattern in Kotlin, Go, Rust, Python. Once registered, the activity is callable from any BPMN process or CMMN case in your project.

Get started

Describe the system. Ship the system.

Open source under Apache 2.0. Cloud free for evaluation. Production deployments self-hosted or hosted, your call.