API

chat.postMessage

Sends a message to a defined channel.

{
    "channel": "C05EUKAF41K",
    "mrkdwn": "true",
    "link_names": 1,
	"blocks": [
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Danny Torrence <@U05FA6F8RL1|Derrick_Steele> left the following review for your property:"
			}
		},
		{
			"type": "section",
			"block_id": "section567",
			"text": {
				"type": "mrkdwn",
				"text": "<https://example.com|Overlook Hotel> \n :star: \n Doors had too many axe holes, guest in room 237 was far too rowdy, whole place felt stuck in the 1920s."
			},
			"accessory": {
				"type": "image",
				"image_url": "<https://is5-ssl.mzstatic.com/image/thumb/Purple3/v4/d3/72/5c/d3725c8f-c642-5d69-1904-aa36e4297885/source/256x256bb.jpg>",
				"alt_text": "Haunted hotel image"
			}
		},
		{
			"type": "section",
			"block_id": "section789",
			"fields": [
				{
					"type": "mrkdwn",
					"text": "*Average Rating*\n1.0"
				}
			]
		}
	]
}

Building Rich Elements

Slack provides a Block Kit Builder for building out rich element templates in Slack markdown.

Troubleshooting

400 Error When Clicking Button

Check the application logs. If receiving a message similar to this one:

https-jsse-nio-4671-exec-5] n.i.a.c.slackv2.SlackV2FrontController   : Signature did not match. 
Request headers = 
x-forwarded-port-->443
host-->derricksteele.com
x-amzn-trace-id-->Root=1-64a4b2d7-4e68d7221d12ac98200c093c
content-length-->2436
user-agent-->Slackbot 1.0 (+https://api.slack.com/robots)
accept-->application/json,*/*
x-slack-signature-->v0=a72a09ee22799f99e2785e9358ba5abee17bfeb79de36fa5235d625c875c7e5d
x-slack-request-timestamp-->1688515287
content-type-->application/x-www-form-urlencoded
x-forwarded-proto-->https

Make sure the Signing Secret and Bot Token are correct.

Slack Apps

Useful Slack Apps

Slack for Outlook

Outlook Calendar

Microsoft Teams Calls

OneDrive and SharePoint

Rocketlane

Jira Server