Prevents duplicate orders when a client retries. Please focus on the retry window and migration compatibility.
Engineering / BLOCK KIT JSON
Ask for a focused code review with the change summary, author, size, and review deadline.
Blank optional fields are omitted. Fallback text updates with your fields.
Approximate Slack rendering. Buttons are visual previews; no actions are sent.
Local validation checks the supported schema. It does not guarantee Slack API acceptance.
Manual editing and validation run in your browser. Opening Slack’s Builder shares the message with Slack.
Ready for review · PR #248 Add idempotency keys to checkout Prevents duplicate orders when a client retries. Please focus on the retry window and migration compatibility. Author: Maya Chen Reviewer: Platform team Change size: 6 files · +184 / −42 Review by: Tomorrow, 12:00 UTC northstar/commerce · All checks passing Review pull request: https://example.com/pull/248
Download the payload or use this command in your own terminal. Replace the placeholder URL with your Slack incoming webhook. Keep the real URL secret. This tool never sends a Slack message.
curl --request POST \
--header 'Content-Type: application/json' \
--data-binary @- \
'https://hooks.slack.com/services/YOUR/WEBHOOK/URL' <<'SLACK_MESSAGE_JSON'
{
"text": "Ready for review · PR #248\nAdd idempotency keys to checkout\nPrevents duplicate orders when a client retries. Please focus on the retry window and migration compatibility.\nAuthor: Maya Chen\nReviewer: Platform team\nChange size: 6 files · +184 / −42\nReview by: Tomorrow, 12:00 UTC\nnorthstar/commerce · All checks passing\nReview pull request: https://example.com/pull/248",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "Ready for review · PR #248"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Add idempotency keys to checkout*\nPrevents duplicate orders when a client retries. Please focus on the retry window and migration compatibility."
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Author*\nMaya Chen"
},
{
"type": "mrkdwn",
"text": "*Reviewer*\nPlatform team"
},
{
"type": "mrkdwn",
"text": "*Change size*\n6 files · +184 / −42"
},
{
"type": "mrkdwn",
"text": "*Review by*\nTomorrow, 12:00 UTC"
}
]
},
{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": "northstar/commerce · All checks passing"
}
]
},
{
"type": "divider"
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Review pull request"
},
"action_id": "review",
"url": "https://example.com/pull/248",
"style": "primary"
}
]
}
]
}
SLACK_MESSAGE_JSONRoute a pull request to the team that owns the affected service. Separating the purpose of the change from the review metadata helps reviewers prioritize the request and understand where to focus.
Use the summary to explain the behavior change and the riskiest area to review. Replace the reviewer and change size with repository data. Remove the deadline if the review is not time sensitive.
Send when a pull request becomes ready for review. The review button opens your code host; this payload does not approve or merge a pull request.
To post this JSON, create a Slack app with an incoming webhook for your channel, or use chat.postMessage with the appropriate bot token and permissions. Keep credentials on your server.
For buttons, enable Interactivity and handle Slack’s interaction requests, including URL buttons. Acknowledge requests promptly. This preview does not execute actions, authorize users, or save decisions.
Use the top-level fallback text for notifications and accessibility. Test your final payload in Slack; local validation covers the declared subset, and visual details vary by client.
Slack interaction setup ↗