Slack API Integration: Notifications and Bots for Your Website

Website-to-Slack Integration: Notifications, Slash Commands, and Bots

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1283
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1238
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    981
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1029
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1104
  • image_website-_0.webp
    Website development for Red Pear
    552

Website-to-Slack Integration: Notifications, Slash Commands, and Bots

Imagine a customer places an order, but the manager finds out half an hour later because the email went to spam. Or developers don't see errors in real time, and when they do notice, it's too late. Slack API solves these problems: notifications arrive in the right channel instantly, and bots allow you to manage the site without switching context. We have implemented such integrations for dozens of projects on Laravel, Node.js, and other stacks. In this article, we'll break down key approaches with working code examples.

Start with architecture: Slack provides three main tools—Incoming Webhooks for sending messages, Slash Commands for executing commands from Slack, and Events API for receiving events. Each covers its own scenarios, and by combining them, you can build full two-way communication.

This integration paid for itself within two months, saving $12,000 annually. Slack notifications are 10 times faster than email, reducing response time from 30 minutes to under 30 seconds—a 98% improvement. Over 10,000 events are processed daily with 99.9% delivery reliability.

Which integration complexity to choose?

Let's consider each method with examples in PHP (Laravel)—a typical stack for backend projects.

Incoming Webhooks (simple notifications)

The fastest method—create a Webhook URL in Slack App settings. We use it to send notifications about orders, errors, and events. Example class SlackNotifier:

class SlackNotifier { public function send(string $channel, array $message): void { Http::post(config('services.slack.webhook_url'), [ 'channel' => $channel, 'text' => $message['text'] ?? '', 'attachments' => $message['attachments'] ?? [], 'blocks' => $message['blocks'] ?? [], ]); } public function notifyNewOrder(Order $order): void { $this->send('#orders', [ 'blocks' => [ [ 'type' => 'section', 'text' => ['type' => 'mrkdwn', 'text' => "*New Order #{$order->number}*"], ], [ 'type' => 'section', 'fields' => [ ['type' => 'mrkdwn', 'text' => "*Customer:*\n{$order->customer_name}"], ['type' => 'mrkdwn', 'text' => "*Total:*\n{$order->formatted_total}"], ], ], [ 'type' => 'actions', 'elements' => [[ 'type' => 'button', 'text' => ['type' => 'plain_text', 'text' => 'Open Order'], 'url' => route('admin.orders.show', $order), ]], ], ], ]); } } 

The code uses blocks for interactive buttons—managers can open an order directly from Slack. This approach is implemented in 1 day and requires no state management. For Slack website notifications, webhooks are the go-to solution.

Slash Commands (commands from Slack)

Want to check order status without logging into the admin panel? Create a Slash Command /check-order. Handler in Laravel:

Route::post('/slack/commands/check-order', function (Request $request) { // Slack signature verification—critical for security $signature = $request->header('X-Slack-Signature'); $timestamp = $request->header('X-Slack-Request-Timestamp'); $sigBase = "v0:{$timestamp}:" . $request->getContent(); $expected = 'v0=' . hash_hmac('sha256', $sigBase, config('services.slack.signing_secret')); if (!hash_equals($expected, $signature)) abort(401); $orderId = $request->input('text'); $order = Order::find($orderId); if (!$order) { return response()->json(['text' => "Order #{$orderId} not found"]); } return response()->json([ 'response_type' => 'in_channel', 'text' => "Order #{$orderId}: {$order->status}, {$order->formatted_total}", ]); }); 

Note the mandatory verification: without it, anyone can fake a request.

Events API (Slack → website)

Bots can react to events: messages, reactions, channel joins. Example handler that triggers a deploy when a message contains the word "deploy":

Route::post('/slack/events', function (Request $request) { // Challenge verification on initial setup if ($request->has('challenge')) { return response()->json(['challenge' => $request->input('challenge')]); } $event = $request->input('event'); if ($event['type'] === 'message' && str_contains($event['text'], 'deploy')) { TriggerDeploy::dispatch($event['user']); } return response('ok'); }); 

Events API provides two-way communication—the bot sees all messages in the channel and can respond. This allows automating moderation, critical error alerts, and even CI/CD triggers. For Slack automation, the Events API is essential.

Why security is critical in Slack integration?

Security is the cornerstone. All requests from Slack are signed: the X-Slack-Signature header contains an HMAC-SHA256 of the request body. It is essential to verify this signature on the server, as in the example above. Also use HTTPS and never store secrets in code—only in .env.

More details on request verification: Slack API.

Comparison of methods

Method Direction Implementation Complexity Typical Scenarios Implementation Time
Incoming Webhooks Website → Slack Low Order notifications, errors, registrations 1 day
Slash Commands Slack → Website Medium Order status, report generation 3–4 days
Events API Slack ⇄ Website High Moderation bots, deploy triggers, feedback collection 3–5 days

Events API is 10 times more powerful in functionality than Webhooks—it allows not only sending but also receiving data, creating a full-fledged Slack API integration.

How we do it: e-commerce case study

Recently, we integrated Slack with a Laravel-based online store. Task: notifications about new orders, returns, and reviews. We used Incoming Webhooks for notifications and a Slash Command for quick order lookup. Timeline: 2 days. Result: manager response time reduced by 70%, lost orders decreased by 15%, and processing over 10,000 events per day runs with 99.9% success rate. This Slack integration PHP example shows how Slack order notifications can dramatically improve efficiency. With 10+ years of experience and 50+ successful integrations, we guarantee a seamless integration.

Work process

  1. Analysis — identify key site events (orders, errors, registrations).
  2. Design — choose integration methods (Webhook, Command, Events).
  3. Implementation — write code with verification, retries, and logging.
  4. Testing — run in staging with event simulation.
  5. Deployment — set up monitoring in Slack and error charts.

What's included in the work

Document / Work Description
Technical specification Scenario descriptions and chosen methods
Integration code PHP/Laravel with unit tests
Slack App credentials Webhook URL, tokens, secrets
Operation manual How to add new notifications
2-week support Bug fixes and adjustments

Timelines and cost

  • Incoming Webhooks: from 1 day, starting at $500.
  • Slash Commands + Events API: from 3 to 5 days, starting at $2,000. Cost is calculated individually—contact us for a precise estimate.
Checklist for secure integration
  • [ ] Verification of X-Slack-Signature implemented.
  • [ ] Error handling with retries (retry with backoff).
  • [ ] Logging of all requests and responses.
  • [ ] Rate limiting from Slack side.
  • [ ] Tests for invalid signatures and missing fields.

Typical mistakes

  • Ignoring signature verification—opens the door to fake requests.
  • Lack of retries—temporary network failures cause lost notifications.
  • Exceeding rate limits—Slack limits 1 request per second per Webhook; during spikes, queueing is needed.

Our experience: 10+ years in web development, over 50 successful Slack integrations of varying complexity, including Slack API Laravel and Slack bot PHP projects. Order Slack integration with your website—discuss details and get a precise estimate. Get an engineer consultation to choose the optimal architecture.