Kurly Automates Approval Workflows with Slack Block Kit and Java SDK
Key point
Kurly leveraged Slack Block Kit and the Java SDK to automate vacation notifications and delivery tip approval workflows.
Details
Kurly adopted Slack API and Block Kit to use Slack not merely as a messenger but as an information-sharing and notification platform. Through this, they automated key internal workflows such as the PDE vacation notifier, integrated development team event notifications, and terminal inbound scan error alerts. In particular, they actively utilized Block Kit's interactive features to handle message-based approval/rejection events.
Slack App Setup and Block Kit Utilization
After creating a Slack App, Incoming Webhooks and Interactivity & Shortcuts are enabled to configure the API path to be called when an Action occurs. UI components such as Button, Menu, and Date Picker are designed via Block Kit Builder, which generates JSON code. The generated Template is implemented as the LayoutBlock interface in the Java SDK within the Spring Framework and included in the message Payload.
Java SDK Integration and Action Handling
In the Spring Framework environment, the slack-api-model, slack-api-client, and slack-api-backend modules are added as Dependencies. The actionId of the approval and rejection buttons must match the Callback ID configured in the Slack App settings. When a user clicks a button, Slack sends a request in application/x-www-form-urlencoded format, so the server must receive it as a String and convert it into a BlockActionPayload object using Gson.
Message Update and Response Handling
In the Action handling logic, information from the BlockActionPayload can be modified or a new Template can be created. To replace the existing message, replaceOriginal(true) is set on the ActionResponse, and the response is sent to the responseUrl via ActionResponseSender. This enables dynamic business processing, such as updating the message to 'Delivery Tip Registration Approved' upon approval and changing the DB status.
This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.
Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.