Skip to content

Announce new and unarchived channels in Slack, in a channel in Slack

License

Notifications You must be signed in to change notification settings

rootsystem-dev/slack-deno-channel-notifier

 
 

Repository files navigation

channel-notifier

This automation sends an announcement to a channel when new channels are created or unarchived.

Customize the channel IDs in workflows/channel_created_workflow.ts and workflows/channel_unarchived_workflow to send the announcements to a different channel.

Guide Outline:


Setup

Before getting started, first make sure you have a development workspace where you have permission to install apps. Please note that the features in this project require that the workspace be part of a Slack paid plan.

Install the Slack CLI

To use this, you need to install and configure the Slack CLI. Step-by-step instructions can be found at Quickstart Guide.

Running Your Project Locally

While building your app, you can see your changes appear in your workspace in real-time with slack run. You'll know an app is the development version if the name has the string (local) appended.

# Run app locally
$ slack run

Connected, awaiting events

To stop running locally, press <CTRL> + C to end the process.

Manual Trigger Creation

To manually create a trigger, use the following command:

$ slack trigger create --trigger-def triggers/channel_created_trigger.ts
$ slack trigger create --trigger-def triggers/channel_unarchived_trigger.ts

Deploying Your App

Once development is complete, deploy the app to Slack infrastructure using slack deploy:

$ slack deploy

When deploying for the first time, you'll be prompted to create a new link trigger for the deployed version of your app. When that trigger is invoked, the workflow should run just as it did when developing locally (but without requiring your server to be running).

Viewing Activity Logs

Activity logs of your application can be viewed live and as they occur with the following command:

$ slack activity --tail

Project Structure

.slack/

Contains apps.dev.json and apps.json, which include installation details for development and deployed apps.

triggers/

Triggers determine when workflows are run. A trigger file describes the scenario in which a workflow should be run, such as a user pressing a button or when a specific event occurs.

workflows/

A workflow is a set of steps (functions) that are executed in order.

Workflows can be configured to run without user input or they can collect input by beginning with a form before continuing to the next step.

manifest.ts

The app manifest contains the app's configuration. This file defines attributes like app name and description.

slack.json

Used by the CLI to interact with the project's SDK dependencies. It contains script hooks that are executed by the CLI and implemented by the SDK.

Resources

To learn more about developing automations on Slack, visit the following:

About

Announce new and unarchived channels in Slack, in a channel in Slack

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%