A Webhook, in simple terms, is a user-defined HTTP callback. It is a mechanism for the system to notify you about an event.
In our case, we need to send messages to a particular channel in slack. Slack calls in Incoming Webhook. It is a mechanism
to send messages to your Slack Channel from external sources. These external sources could be any application or service
that is capable of sending a JSON payload
over HTTP into a Slack Channel. Each Channel will be identified by a
unique Incoming Webhook URL to which you can post the message from outside. This configuration is done via the Integrations for your channel.
- Naviagte to the Incoming Webhook URL. Click the hyper link
incoming webhook integration
below the heading Incoming Webhooks. - You will be asked to enter your team URL, followed by your slack credentials.
- Once you have completed the above step, you will see the wizard kind of webpage to create a new webhook. First, Select the channel to which you want to post. If you want to create a new channel click the create a new channel hyperlink.
- Then, click the green button Add Incoming Webhook. You will see a unique URL generated which can be used to send notifications to that channel.
- Other seetings like changing the icon of the slack bot or other settings can be done by scrolling down the form.
- Now, you can test it by sending messages to the channel using CURL.
curl -X POST --data-urlencode 'payload={"channel": "#general", "username": "webhookbot", "text": "This is posted to #general and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/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
. - You can also axios and here is the snippet for that:
import axios from 'axios';
const options = {
text: "Message from slack bot!!",
};
axios.post('<SLACK_WEBHOOK_URL>', JSON.stringify(options))
.then((response) => {
console.log('SUCCEEDED: Sent slack webhook: \n', response.data);
resolve(response.data);
})
.catch((error) => {
console.log('FAILED: Send slack webhook', error);
reject(new Error('FAILED: Send slack webhook'));
});
By following above steps, one can create a slack webHook to a particular channel and send notifications to it from any sources.