{"id":26289972,"url":"https://github.com/slack-samples/deno-function-template","last_synced_at":"2026-03-09T20:04:55.944Z","repository":{"id":177342189,"uuid":"650317977","full_name":"slack-samples/deno-function-template","owner":"slack-samples","description":"A template for a single function (no workflow)","archived":false,"fork":false,"pushed_at":"2025-12-22T19:43:56.000Z","size":389,"stargazers_count":10,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-24T06:05:17.672Z","etag":null,"topics":["next-gen"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slack-samples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-06T20:16:23.000Z","updated_at":"2025-12-22T19:43:59.000Z","dependencies_parsed_at":"2023-11-30T19:30:49.288Z","dependency_job_id":"554ced62-01dd-4c84-ba0b-515fa725e786","html_url":"https://github.com/slack-samples/deno-function-template","commit_stats":null,"previous_names":["slack-samples/deno-function-template"],"tags_count":0,"template":false,"template_full_name":"slack-samples/deno-starter-template","purl":"pkg:github/slack-samples/deno-function-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slack-samples%2Fdeno-function-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slack-samples%2Fdeno-function-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slack-samples%2Fdeno-function-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slack-samples%2Fdeno-function-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slack-samples","download_url":"https://codeload.github.com/slack-samples/deno-function-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slack-samples%2Fdeno-function-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30310025,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T17:35:44.120Z","status":"ssl_error","status_checked_at":"2026-03-09T17:35:43.707Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["next-gen"],"created_at":"2025-03-14T23:17:32.624Z","updated_at":"2026-03-09T20:04:55.933Z","avatar_url":"https://github.com/slack-samples.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deno Function Template\n\nThis is a template used to build out a single, workflow-less function. To learn\nmore, read the tutorial on creating\n[custom functions for Workflow Builder](https://api.slack.com/tutorials/tracks/wfb-function).\n\n**Guide Outline**:\n\n- [Setup](#setup)\n  - [Install the Slack CLI](#install-the-slack-cli)\n  - [Clone the Template](#clone-the-template)\n- [Running Your Project Locally](#running-your-project-locally)\n- [Testing](#testing)\n- [Deploying Your App](#deploying-your-app)\n- [Viewing Activity Logs](#viewing-activity-logs)\n- [Adding Function to Workflow Builder](#adding-function-to-workflow-builder)\n- [Project Structure](#project-structure)\n- [Resources](#resources)\n\n---\n\n## Setup\n\nBefore getting started, first make sure you have a development workspace where\nyou have permission to install apps. **Please note that the features in this\nproject require that the workspace be part of\n[a Slack paid plan](https://slack.com/pricing).**\n\n### Install the Slack CLI\n\nTo use this template, you need to install and configure the Slack CLI.\nStep-by-step instructions can be found in our\n[Quickstart Guide](https://api.slack.com/automation/quickstart).\n\n### Clone the Template\n\nStart by cloning this repository:\n\n```zsh\n# Clone this project onto your machine\n$ slack create my-app -t slack-samples/deno-function-template\n\n# Change into the project directory\n$ cd my-app\n```\n\n## Running Your Project Locally\n\nWhile building your app, you can see your changes appear in your workspace in\nreal-time with `slack run`. You'll know an app is the development version if the\nname has the string `(local)` appended.\n\n```zsh\n# Run app locally\n$ slack run\n\nConnected, awaiting events\n```\n\nTo stop running locally, press `\u003cCTRL\u003e + C` to end the process.\n\n## Testing\n\nFor an example of how to test a function, see\n`functions/sample_function_test.ts`. Test filenames should be suffixed with\n`_test`.\n\nRun all tests with `deno test`:\n\n```zsh\n$ deno test\n```\n\n## Deploying Your App\n\nOnce development is complete, deploy the app to Slack infrastructure using\n`slack deploy`:\n\n```zsh\n$ slack deploy\n```\n\nWhen deploying for the first time, you'll be prompted to\n[create a new link trigger](#creating-triggers) for the deployed version of your\napp. When that trigger is invoked, the workflow should run just as it did when\ndeveloping locally (but without requiring your server to be running).\n\n## Viewing Activity Logs\n\nActivity logs of your application can be viewed live and as they occur with the\nfollowing command:\n\n```zsh\n$ slack activity --tail\n```\n\n## Adding Function to Workflow Builder\n\nThis function can be used in\n[Workflow Builder](https://slack.com/help/articles/16962850225939-Build-a-workflow)\nonce the app is installed to your workspace (either through `slack run` or\n`slack deploy`). To access Workflow Builder, you can go to the \"Tools\" option\nunder your workspace and select \"Workflow Builder\".\n\nFrom here, you can create a new workflow. Functions from installed apps can be\nadded as a step within Workflow Builder; to add it, search for your app name in\nthe \"Steps\" sidebar when you're building out your new workflow and you should\nsee the app's related functions show up in the results. You can select this\noption and fill out the needed inputs to pass into the function. At this point,\nthe function will be added as a step in your workflow!\n\n## Project Structure\n\n### `.slack/`\n\nContains `apps.dev.json` and `apps.json`, which include installation details for\ndevelopment and deployed apps.\n\nContains `hooks.json` used by the CLI to interact with the project's SDK\ndependencies. It contains script hooks that are executed by the CLI and\nimplemented by the SDK.\n\n### `functions/`\n\n[Functions](https://api.slack.com/automation/functions) are reusable building\nblocks of automation that accept inputs, perform calculations, and provide\noutputs. Functions can be used independently or as steps in workflows.\n\n### `manifest.ts`\n\nThe [app manifest](https://api.slack.com/automation/manifest) contains the app's\nconfiguration. This file defines attributes like app name and description.\n\n## Resources\n\nTo learn more about developing automations on Slack, visit the following:\n\n- [Automation Overview](https://api.slack.com/automation)\n- [CLI Quick Reference](https://api.slack.com/automation/cli/quick-reference)\n- [Samples and Templates](https://api.slack.com/automation/samples)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslack-samples%2Fdeno-function-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslack-samples%2Fdeno-function-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslack-samples%2Fdeno-function-template/lists"}