{"id":6237,"date":"2026-07-09T18:47:48","date_gmt":"2026-07-09T13:17:48","guid":{"rendered":"https:\/\/blog.spike.sh\/?p=6237"},"modified":"2026-07-09T19:12:54","modified_gmt":"2026-07-09T13:42:54","slug":"slack-app-for-spike-rebuilt","status":"publish","type":"post","link":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/","title":{"rendered":"We rebuilt our Slack app"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">We are launching a new version of our Slack app for Spike. New architecture, a proper incident workflow you can run end to end without leaving Slack, and our first real go at bringing AI into the mix. We didn&#8217;t get here in a straight line though. This is the story of why we rebuilt our Slack app from the ground up, how we did it, and what we ran into along the way.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why we rebuilt our Slack app<\/strong><\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"521\" height=\"307\" data-attachment-id=\"6238\" data-permalink=\"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/image-127\/\" data-orig-file=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image.png\" data-orig-size=\"521,307\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image.png\" src=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image.png\" alt=\"Customer request for incident details in slack\" class=\"wp-image-6238\" style=\"aspect-ratio:1.695774647887324;width:606px;height:auto\" srcset=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image.png 521w, https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image-300x177.png 300w\" sizes=\"auto, (max-width: 521px) 100vw, 521px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">A lot of our customers live in Slack. Over eighty percent of them use it with Spike. Alerts land there, the on-call person gets tagged, and a lot of the discussion around fixing things happens in the Slack threads. We&#8217;ve pushed close to a million alerts through Slack over the last couple of years.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But as we talked to customers, we kept hearing the same ask: fewer round trips for the small stuff. Acknowledge an incident here, unacknowledge it there. To be clear, the dashboard is still where the heavy lifting happens, and plenty of teams spend most of their day in it. But for the quick actions in the middle of an incident, people wanted to stay in the thread, with more context and more control right there. And on our end, we&#8217;d been wanting to bring real AI features into Spike for a while, not just bolt something on, and Slack felt like the right place to start.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The previous app was built directly inside our core API. And it worked really well. However,&nbsp; to scale the Slack app and bring in all the features people were asking for, living inside the core API just wasn&#8217;t going to cut it. So we had to break it out into a separate service altogether.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What we shipped<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can now run an incident from start to finish without leaving Slack.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Acknowledge and unacknowledge incidents right from the thread<\/li>\n\n\n\n<li>Pull up the full payload<\/li>\n\n\n\n<li>Fetch the activity log on demand<\/li>\n\n\n\n<li>Invite teammates in to take a look<\/li>\n\n\n\n<li>Ask Spike AI to summarise what&#8217;s happened, point at possible root causes, and suggest what to check next, and much more<\/li>\n\n\n\n<li>Add a resolution note<\/li>\n\n\n\n<li>Sync an incident with a status page incident<\/li>\n\n\n\n<li>Link unfurling, so an incident in a thread actually looks like an incident, not just a link<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The old setup wasn&#8217;t enough<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The old app ran on a single Slack interaction handler. And to be clear, it was good, and it got us up to speed really fast in the early days. The problem was how it grew. Every action, every form, every component we rendered in Slack flowed through that one handler, and over time it all got tightly coupled. Acknowledge, resolve, create a channel, it all lived in one actions.js. Adding anything new meant extending code that was already doing five other jobs, and touching one piece could quietly break another. It worked, but things were easy to miss, and honestly, we felt locked in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There wasn&#8217;t one dramatic pain point that made us go &#8220;this has to be rebuilt right now.&#8221; The handler did its job just fine while it lived inside the API. But once we knew we wanted to bring AI into the Slack experience, we could see that wiring it into a tightly coupled system was going to get painful.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Moving to bolt and rethinking the architecture<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once we decided to pull the Slack app out into its own microservice, the first thing we settled on was keeping everything simple and loosely coupled. Every file has one job. Want to acknowledge an incident? There&#8217;s acknowledge.js. Resolve? resolve.js. Add an emoji reaction on acknowledge? reaction.js. Nothing is tangled up with anything it doesn&#8217;t need to know about. Adding a feature now means adding a file, not carefully operating on a system that didn&#8217;t want to be touched, and that&#8217;s exactly what makes this easy to keep scaling from here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While we still valued the DRY approach for common logic, we carefully avoided falling back into the tight coupling we had just moved away from. For us, allowing a small amount of duplication is well worth it to ensure each file remains completely isolated and autonomous.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s been an unexpected bonus too. We work with Claude Code a lot, and when every action is one small self-contained file, architectural changes and code reviews get so much simpler, a diff actually tells you the whole story. As for the library, that choice was easy: we went with Bolt, the one Slack recommends in their own docs, and let it handle clicks, submissions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The challenges we hit along the way<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Jailbreak risk and AI safety<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The moment you put an AI assistant inside a product, you inherit a whole new class of problems. One of the trickiest for us: how do you keep Spike AI focused on incidents and not let it drift into things it was never meant to do?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because let&#8217;s be honest, if you give people an AI, someone&#8217;s going to try to get it to write a bedtime story for their kids or sing a lullaby, all from inside their incident tool. Funny in the moment, but it points at a real design challenge. An incident tool&#8217;s AI should be answering questions about incidents. That&#8217;s it. Keeping it in that lane without also blocking legitimate questions is harder than it sounds, and you can&#8217;t cover every case.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So we locked down the core decisions and drew clear boundaries around what the assistant will and won&#8217;t engage with. It&#8217;s not airtight and probably never will be. We&#8217;ll keep tightening it as people find gaps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The activity log debate<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We had long discussions and debates on the activity log. Quick context if you haven&#8217;t used it: it&#8217;s a record of everything that happens after an incident triggers. Anything automated that fires off, anything a human does, it all gets captured in one timeline. Who got alerted, when it escalated, whether a Jira or Linear ticket was created, whether a playbook ran, whether it synced to a status page incident. The full life cycle of an incident in one place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The debate was about how to surface it in Slack. <a href=\"https:\/\/www.linkedin.com\/in\/ktkaushik\">Kaushik<\/a> was pushing hard for a live version, where every new entry in the activity log posts to the thread as it happens. Incident created, message. Escalated to level one, message. Escalated to level two, another message. His argument was that it makes browsing and managing an incident directly in Slack so much nicer, you just scroll the thread and see the whole story unfold.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But I was worried it might turn into noise. If someone&#8217;s juggling three or four separate incidents in a day, a live activity log could easily quadruple the number of messages hitting their Slack. Even with an option to turn it off, that felt like a lot. So we settled it a different way: you can fetch the full activity log on demand whenever you want it, as a single consolidated message rather than a stream. And for a lightweight sense of what&#8217;s happening, we went with reactions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If a live activity log is something you&#8217;d actually use though, we&#8217;re open to it. Drop us a message on live chat and tell us. If enough people ask for it, we&#8217;ll build it.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"512\" data-attachment-id=\"6239\" data-permalink=\"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/image-128\/\" data-orig-file=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image-1.png\" data-orig-size=\"672,512\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image-1.png\" src=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image-1.png\" alt=\"Activity log for incident\" class=\"wp-image-6239\" style=\"width:602px;height:459px\" srcset=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image-1.png 672w, https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/image-1-300x229.png 300w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Permission gaps we discovered<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Building for Slack surfaced a question we hadn&#8217;t fully thought through: who should be allowed to do what?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The whole point of the new app is to lower the barrier, so anyone in a Slack channel can pull up incident details, jump in, and help out, even if they&#8217;re not a Spike user. That openness is kind of the point. An intern who spots something during an incident shouldn&#8217;t need an account to say so. Fetching the payload, for instance, works whether or not you&#8217;re connected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But push that idea further and it gets uncomfortable. Some actions carry real weight. Creating a status page incident, for example, goes out to your customers, and that&#8217;s a lot of power to leave open to anyone in the channel. You want that kind of thing behind a control you actually own. So we drew the line there: the lighter, collaborative stuff stays open to everyone, while sensitive actions stay with Spike users.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The approval journey<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Building the app was the easy part. The longer stretch was the review and approval process with Slack.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;d started this whole project back at the beginning of the year. We submitted our first change to Slack around the 10th of March, though that one was really just for a URL change. Then we figured that as long as we were in the queue, we might as well add the new features we&#8217;d been planning, so we resubmitted on the 24th of March with the fuller scope.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1003\" height=\"759\" data-attachment-id=\"6243\" data-permalink=\"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/slack-app-submitted-on-24th-march-2\/\" data-orig-file=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-submitted-on-24th-march-1.png\" data-orig-size=\"1003,759\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"slack app submitted on 24th march\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-submitted-on-24th-march-1.png\" src=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-submitted-on-24th-march-1.png\" alt=\"Slack app submitted for review \" class=\"wp-image-6243\" srcset=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-submitted-on-24th-march-1.png 1003w, https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-submitted-on-24th-march-1-300x227.png 300w, https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-submitted-on-24th-march-1-768x581.png 768w, https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-submitted-on-24th-march-1-200x150.png?crop=1 200w\" sizes=\"auto, (max-width: 1003px) 100vw, 1003px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">From there it was a waiting game. Slack&#8217;s docs say the review takes about 5 to 6 weeks. We heard back around the 30th of May, and got our final approval on the 10th of June after making changes as per their suggestions, so all in it came to the better part of 5 months.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"973\" height=\"950\" data-attachment-id=\"6244\" data-permalink=\"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/slack-app-approved-on-10th-june\/\" data-orig-file=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-approved-on-10th-june.png\" data-orig-size=\"973,950\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"slack app approved on 10th june\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-approved-on-10th-june.png\" src=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-approved-on-10th-june.png\" alt=\"Slack App approved\" class=\"wp-image-6244\" srcset=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-approved-on-10th-june.png 973w, https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-approved-on-10th-june-300x293.png 300w, https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-app-approved-on-10th-june-768x750.png 768w\" sizes=\"auto, (max-width: 973px) 100vw, 973px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">So much happened on our end during that window that it genuinely felt like an entire era had passed at Spike. We even released our new dashboard while we were waiting. If you&#8217;re building a Slack app yourself, it&#8217;s worth planning for the review to take a while, and not letting it block the rest of your roadmap. We kept building throughout, and by the time approval came through, we were ready to move.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What&#8217;s next \u2014 MS Teams integration<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;re not stopping at Slack. Plenty of teams live in Teams the way others live in Slack. Same workflow, same AI, coming there next. We&#8217;ll have more to share soon.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Closing notes<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s the story of how our new Slack app came together, the why behind it, the debates we had, and the challenges we&#8217;re still working through.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re already using Spike, give it a spin and play around with Spike AI. A few prompts to get you started:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;What are the possible root causes here?&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;What should I check next to resolve this?&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;When am I on-call ?&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tell us what you think, whether it&#8217;s a feature request, a rough edge you hit, or something you&#8217;d want to see next like a live activity log.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Drop us a message on live chat in your dashboard, or reach out at <a href=\"mailto:support@spike.sh\">support@spike.sh<\/a>. You can also find us on <a href=\"https:\/\/www.linkedin.com\/company\/spike-hq\">LinkedIn<\/a> and <a href=\"https:\/\/x.com\/SpikedHQ\">X<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thanks for reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We rebuilt our Slack app from the ground up. Here&#8217;s the story, the debates, and how Spike AI fits in.<\/p>\n","protected":false},"author":263547071,"featured_media":6250,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":true,"token":"eyJpbWciOiJodHRwczpcL1wvYmxvZy5zcGlrZS5zaFwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDdcL3NsYWNrLWludGVncmF0aW9uLWNvdmVyLTEwMjR4NTc2LnBuZyIsInR4dCI6IldlIHJlYnVpbHQgb3VyIFNsYWNrIGFwcCIsInRlbXBsYXRlIjoiaGlnaHdheSIsImZvbnQiOiIiLCJibG9nX2lkIjoyMzMxMzg5MDB9.HTNJZ2bp_wJzNaBkOUCJoEUiaMVpiXjxk77tsxjU1C8MQ"},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[1424],"tags":[],"class_list":["post-6237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-building-spike"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>We rebuilt our Slack app<\/title>\n<meta name=\"description\" content=\"Discover the rebuilt Slack app for Spike designed to enhance your workflow and improve incident response without leaving Slack.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"We rebuilt our Slack app\" \/>\n<meta property=\"og:description\" content=\"Discover the rebuilt Slack app for Spike designed to enhance your workflow and improve incident response without leaving Slack.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/\" \/>\n<meta property=\"og:site_name\" content=\"Welcome to Spike.\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-09T13:17:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-09T13:42:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-integration-cover.png\" \/>\n\t<meta property=\"og:image:width\" content=\"4800\" \/>\n\t<meta property=\"og:image:height\" content=\"2700\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Damanpreet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Damanpreet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/\"},\"author\":{\"name\":\"Damanpreet\",\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/#\\\/schema\\\/person\\\/4bc971837058eacf02e9ef12fb625155\"},\"headline\":\"We rebuilt our Slack app\",\"datePublished\":\"2026-07-09T13:17:48+00:00\",\"dateModified\":\"2026-07-09T13:42:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/\"},\"wordCount\":1814,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.spike.sh\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/slack-integration-cover.png\",\"articleSection\":[\"Building Spike\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/\",\"url\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/\",\"name\":\"We rebuilt our Slack app\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.spike.sh\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/slack-integration-cover.png\",\"datePublished\":\"2026-07-09T13:17:48+00:00\",\"dateModified\":\"2026-07-09T13:42:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/#\\\/schema\\\/person\\\/4bc971837058eacf02e9ef12fb625155\"},\"description\":\"Discover the rebuilt Slack app for Spike designed to enhance your workflow and improve incident response without leaving Slack.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blog.spike.sh\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/slack-integration-cover.png\",\"contentUrl\":\"https:\\\/\\\/blog.spike.sh\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/slack-integration-cover.png\",\"width\":4800,\"height\":2700,\"caption\":\"new Spike app for Slack cover\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/slack-app-for-spike-rebuilt\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.spike.sh\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"We rebuilt our Slack app\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/#website\",\"url\":\"https:\\\/\\\/blog.spike.sh\\\/\",\"name\":\"Welcome to Spike.\",\"description\":\"In this space, our team talks about all things incidents, response, oncall, and share our journey of building Spike.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.spike.sh\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.spike.sh\\\/#\\\/schema\\\/person\\\/4bc971837058eacf02e9ef12fb625155\",\"name\":\"Damanpreet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9a938d08ab9251a99e241686ddce63028cca486f4937fffad851519903da88d3?s=96&d=robohash&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9a938d08ab9251a99e241686ddce63028cca486f4937fffad851519903da88d3?s=96&d=robohash&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9a938d08ab9251a99e241686ddce63028cca486f4937fffad851519903da88d3?s=96&d=robohash&r=g\",\"caption\":\"Damanpreet\"},\"url\":\"https:\\\/\\\/blog.spike.sh\\\/author\\\/daman50ab08d672\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"We rebuilt our Slack app","description":"Discover the rebuilt Slack app for Spike designed to enhance your workflow and improve incident response without leaving Slack.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/","og_locale":"en_GB","og_type":"article","og_title":"We rebuilt our Slack app","og_description":"Discover the rebuilt Slack app for Spike designed to enhance your workflow and improve incident response without leaving Slack.","og_url":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/","og_site_name":"Welcome to Spike.","article_published_time":"2026-07-09T13:17:48+00:00","article_modified_time":"2026-07-09T13:42:54+00:00","og_image":[{"width":4800,"height":2700,"url":"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-integration-cover.png","type":"image\/png"}],"author":"Damanpreet","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Damanpreet","Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/#article","isPartOf":{"@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/"},"author":{"name":"Damanpreet","@id":"https:\/\/blog.spike.sh\/#\/schema\/person\/4bc971837058eacf02e9ef12fb625155"},"headline":"We rebuilt our Slack app","datePublished":"2026-07-09T13:17:48+00:00","dateModified":"2026-07-09T13:42:54+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/"},"wordCount":1814,"commentCount":0,"image":{"@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-integration-cover.png","articleSection":["Building Spike"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/","url":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/","name":"We rebuilt our Slack app","isPartOf":{"@id":"https:\/\/blog.spike.sh\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/#primaryimage"},"image":{"@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-integration-cover.png","datePublished":"2026-07-09T13:17:48+00:00","dateModified":"2026-07-09T13:42:54+00:00","author":{"@id":"https:\/\/blog.spike.sh\/#\/schema\/person\/4bc971837058eacf02e9ef12fb625155"},"description":"Discover the rebuilt Slack app for Spike designed to enhance your workflow and improve incident response without leaving Slack.","breadcrumb":{"@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/#primaryimage","url":"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-integration-cover.png","contentUrl":"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-integration-cover.png","width":4800,"height":2700,"caption":"new Spike app for Slack cover"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.spike.sh\/slack-app-for-spike-rebuilt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.spike.sh\/"},{"@type":"ListItem","position":2,"name":"We rebuilt our Slack app"}]},{"@type":"WebSite","@id":"https:\/\/blog.spike.sh\/#website","url":"https:\/\/blog.spike.sh\/","name":"Welcome to Spike.","description":"In this space, our team talks about all things incidents, response, oncall, and share our journey of building Spike.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.spike.sh\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/blog.spike.sh\/#\/schema\/person\/4bc971837058eacf02e9ef12fb625155","name":"Damanpreet","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/9a938d08ab9251a99e241686ddce63028cca486f4937fffad851519903da88d3?s=96&d=robohash&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9a938d08ab9251a99e241686ddce63028cca486f4937fffad851519903da88d3?s=96&d=robohash&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9a938d08ab9251a99e241686ddce63028cca486f4937fffad851519903da88d3?s=96&d=robohash&r=g","caption":"Damanpreet"},"url":"https:\/\/blog.spike.sh\/author\/daman50ab08d672\/"}]}},"modified_by":"Kaushik","jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/blog.spike.sh\/wp-content\/uploads\/2026\/07\/slack-integration-cover.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfMe4Q-1CB","_links":{"self":[{"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/posts\/6237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/users\/263547071"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/comments?post=6237"}],"version-history":[{"count":6,"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/posts\/6237\/revisions"}],"predecessor-version":[{"id":6251,"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/posts\/6237\/revisions\/6251"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/media\/6250"}],"wp:attachment":[{"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/media?parent=6237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/categories?post=6237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.spike.sh\/wp-json\/wp\/v2\/tags?post=6237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}