Tags: slack
Contributors: hametuha, Takahashi_Fumiki
Tested up to: 6.9
Stable Tag: nightly
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
A Slack utility for WordPress.
This plugin integrates Slack and WordPress.
By default, this plugin does nothing. It's true. Slack has many API integration, but hameslack uses 2 of them.
- Incoming Webhook to post to slack.
- Slack App to interact with slack.
Upper is easier. This plugin helps the connection between Slack and WordPress and you can concentrate on what you should do with slack.
Here is a list of use case of us on WordPress with many editors.
- Easy Post notification to slack if some post is awaiting review.
- Difficult Post access summary to slack once a week, because my colleague doesn't open Google Analytics.
- Very Difficult Convert slack conversation to single post and make interview post.
For more details, please read the Addons documentation.
The simplest usage is post to slack. You can do like below:
do_action( 'hameslack', $text_to_post, $attachments, $channel );
Function hameslack_post( $content, $attachment, $channel ) is also available, but I prefer to use do_action to avoid annoying if ( function_exists('func_name')) .
Everything works fine if you set properly.
- Sending Invitation
deprecated at 2.0: this endpoint was unofficial and official one is only for Enterprise grid. Users now can send invitation reqeust from their profile page. - Outgoind Webhook
deprecated at 2.0: Slack recommends Events API instead.
Click install and activate it.
Download from Releases and you can use it. Any pull requests are welcomed.
To post a message to slack, you need Payload URL. Create an app and activate "Incoming Webhooks". Now you can get payload URL.
To get Bot Token, go to "OAuth & Permissions". By installing your app to your workspace, Bot token will be generated.
As mentioned above, this plugin does nothing by default. Enable built-in addons from the settings page, or read the Addons documentation to write your own.
If you have any request, please make issue on github.
This plugin requires custom code to work with your Slack workspace. Here's how to set up a local development environment.
- Node.js >= 22 (managed via Volta)
- Docker Desktop (for wp-env)
- cloudflared (for Slack Webhook testing)
# Install dependencies npm install composer install # Start WordPress local environment npm start # Build assets npm run package # Watch for changes during development npm run watch
Slack requires a public HTTPS URL for Event Subscriptions and Interactive Components. Use Cloudflare Tunnel to expose your local environment:
# In a separate terminal, start the tunnel npm run tunnel
This gives you a temporary public URL like https://random-name.trycloudflare.com. Then:
- Go to your Slack App settings
- Update Event Subscriptions Request URL to
https://random-name.trycloudflare.com/wp-json/hameslack/v1/... - Update Interactivity & Shortcuts Request URL similarly
- The URL changes each time you restart the tunnel
Note: Make sure WordPress permalink settings are not set to "Plain" — pretty permalinks are required for /wp-json/ to work through the tunnel.
| Command | Description |
|---|---|
npm start |
Start wp-env |
npm run package |
Build all assets (CSS + JS) |
npm run watch |
Watch for file changes |
npm run tunnel |
Open Cloudflare Tunnel to localhost:8888 |
npm run lint |
Run ESLint + Stylelint |
npm run fix |
Auto-fix lint errors |
npm test |
Run PHPUnit tests |
- You can create such kind of bot.
- You can set up everything on setting screen.
- You can create Outgoing Webhooks as custom post type.
- Add hook-based addon system with settings UI.
- Add built-in addons: Pending Review Notify (Incoming Webhook sample) and Slash Command Dashboard (Bot Token sample).
- Fix double URL-encoding in
hameslack_bot_request()for POST requests.
- Bump required versions: PHP 7.4 and WP 6.6
- Remove invitation feature and users now can send a simple message to specific channel to request invitation.
- Bot is required.
- If gianism is enabled, you can log in with Slack account.
- Bugfix on REST API.
- Add invitation request feature.
- Add auto deploy.
- First release.