{"id":13846288,"url":"https://github.com/jwulf/slack-cloud-worker","last_synced_at":"2026-01-18T11:42:56.312Z","repository":{"id":47933102,"uuid":"225707657","full_name":"jwulf/slack-cloud-worker","owner":"jwulf","description":"A Cloudflare Zero-Scale Slack Worker for Zeebe on Camunda Cloud","archived":false,"fork":false,"pushed_at":"2021-08-11T18:31:08.000Z","size":101,"stargazers_count":2,"open_issues_count":5,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T07:39:30.243Z","etag":null,"topics":["cloudflare-worker","slack","zeebe"],"latest_commit_sha":null,"homepage":"https://zeebe.io/blog/2019/12/cloudflare-slack/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwulf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-03T20:18:41.000Z","updated_at":"2020-05-10T09:10:23.000Z","dependencies_parsed_at":"2022-08-12T14:31:55.963Z","dependency_job_id":null,"html_url":"https://github.com/jwulf/slack-cloud-worker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jwulf/slack-cloud-worker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwulf%2Fslack-cloud-worker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwulf%2Fslack-cloud-worker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwulf%2Fslack-cloud-worker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwulf%2Fslack-cloud-worker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwulf","download_url":"https://codeload.github.com/jwulf/slack-cloud-worker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwulf%2Fslack-cloud-worker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28535177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare-worker","slack","zeebe"],"created_at":"2024-08-04T18:00:26.497Z","updated_at":"2026-01-18T11:42:56.286Z","avatar_url":"https://github.com/jwulf.png","language":"JavaScript","funding_links":[],"categories":["Use-cases"],"sub_categories":[],"readme":"# Cloudflare Zero-Scale Slack Worker for Camunda Cloud\n\nThis is a [Cloudflare worker](https://developers.cloudflare.com/workers) that provides a zero-scale Slack messaging task for [Camunda Cloud](https://zeebe.io/blog/2019/09/getting-started-camunda-cloud/), using the Camunda Cloud HTTP Worker.\n\nOn the free tier of Cloudflare Workers, you can send 100,000 messages a day.\n\n## Setup\n\n### Slack Setup\n\n1. Go to your Slack.\n2. Click on the part that has your name and the Slack team name, then go to \"Customize Slack\".\n3. Click on \"Configure apps\".\n4. Search the App Directory for \"Incoming WebHooks\".\n5. Click on \"Add to Slack\".\n6. Choose a channel, then click on \"Add Incoming WebHooks integration\"\n7. Copy the Webhook URL.\n\n### Cloudflare Setup\n\n1. Sign up for a [Cloudflare Workers account](https://dash.cloudflare.com/).\n2. Clone [this repo](https://github.com/jwulf/slack-cloud-worker), then cd into the checked out directory and run `npm i`.\n3. Install `wrangler`, the Cloudflare Worker CLI:\n\n```bash\nnpm i -g wrangler\n```\n\n4. Grab your Account ID from your [Cloudflare dashboard](https://dash.cloudflare.com/) (click on Workers on the right). Put the Account ID into `wrangler.toml` in the `account_id` field.\n5. Create a new API key in your Cloudflare account. Click on \"Get your API token\" under your Account ID, and create a new token with Permissions: Account \u003e Workers Scripts \u003e Edit.\n6. Copy the API key.\n7. Run `wrangler config`.\n8. Enter the email address of your Cloudflare account, and paste in the API key.\n9. Now publish the worker with `wrangler publish`\n10. Copy the url of your deployed Cloudflare worker.\n\n### Camunda Cloud Setup\n\n1. Log in to your [Camunda Cloud](https://console.cloud.camunda.io/) account.\n2. Go to the configuration screen for your cluster.\n3. Click on \"Worker Variables\" next to the HTTP-Worker.\n4. Create a new variable `slackWorkerUrl` and paste in your Cloudflare Worker url.\n5. Create a new variable `slackWebhook` and paste in your Slack webhook url.\n\n## Use\n\nCheck the `bpmn/test-message.bpmn` file for an example. \n\nTo send a message to Slack in a business process, add a task with the Type \"CAMUNDA-HTTP\".\n\nSet these Headers on the task:\n\nurl : ${slackWorkerUrl}\nslackWebhook : ${slackWebhook}\nmethod : post\n\nYou have two options for setting the message. \n\n1. You can hardcode a message in the task header.\n2. You can set a `message` variable in the workflow.\n\nEither way, any field that you want replaced by a variable from the workflow should be escaped like this: `{{ variable }}`.\n\nThe templating is performed using [micromustache](https://www.npmjs.com/package/micromustache).\n\nIn the example, the message is set in the headers: `Hello {{ name }}`. When the worker receives a job, it substitutes the value of the variable `name`. If you examine the file `bpmn/test.js`, you'll see that it kicks off a workflow setting the variable `name` to \"World!\", leading to the Slack message \"Hello World!\".\n\n## Running the demo\n\n1. Cd into the `bpmn` directory. \n2. Run `npm i`.\n3. Grab your config from your Camunda Cloud account (create Client credentials for the cluster if you don't already have some in there).\n4. Run the demo like this - substituting your configuration:\n\n```bash\nZEEBE_ADDRESS=${YOUR CLUSTER CONTACT POINT} ZEEBE_CLIENT_ID=${CLIENT ID} ZEEBE_CLIENT_SECRET=${CLIENT SECRET} node index.js\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwulf%2Fslack-cloud-worker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwulf%2Fslack-cloud-worker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwulf%2Fslack-cloud-worker/lists"}