{"id":31947,"date":"2026-04-21T16:36:28","date_gmt":"2026-04-21T15:36:28","guid":{"rendered":"https:\/\/www.intercom.com\/blog\/?p=31947"},"modified":"2026-04-21T16:35:46","modified_gmt":"2026-04-21T15:35:46","slug":"ai-is-approving-our-pull-requests-heres-how-we-made-it-safe","status":"publish","type":"post","link":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/","title":{"rendered":"AI is approving our pull requests: Here&#8217;s how we made it safe"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">At Intercom, <\/span><a href=\"https:\/\/www.intercom.com\/blog\/shipping-is-your-companys-heartbeat\/\"><span style=\"font-weight: 400;\">shipping is our heartbeat<\/span><\/a><span style=\"font-weight: 400;\">. We push code to production hundreds of times a day.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Engineers, engineering managers, designers, and PMs all contribute to this, safely. The average time from merging code to it running in production is <\/span><a href=\"https:\/\/www.intercom.com\/blog\/the-safety-of-speed-shipping-code-at-intercom\/\"><span style=\"font-weight: 400;\">12 minutes<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We&#8217;ve long held a belief that might sound counterintuitive: speed is not the enemy of safety. It&#8217;s a prerequisite for it. Accumulating code creates risk. Shipping small batches minimizes it. The faster you ship, the smaller each change is, and the easier it is to catch problems, and roll back when something goes wrong as the context is still fresh in your head.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Today, over 93% of our pull requests (PRs) across our two main codebases are Agent-driven. And over 19% are auto-approved with no human reviewer in the loop.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This post is about that second number, and why we think it makes us safer. Most people hear &#8220;AI is approving our pull requests&#8221; and think that&#8217;s reckless. We think the data tells a different story.<\/span><\/p>\n<h2 id=\"the-2x-effort\">The 2x effort<\/h2>\n<p><span style=\"font-weight: 400;\">Last year, our CTO Darragh Curran set an explicit goal: <\/span><a href=\"https:\/\/ideas.fin.ai\/p\/2\"><span style=\"font-weight: 400;\">double the productivity of our entire R&amp;D organization within 12 months<\/span><\/a><span style=\"font-weight: 400;\">. Because the faster we can build and ship, the faster our customers get the capabilities they need.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nine months later, <\/span><a href=\"https:\/\/ideas.fin.ai\/p\/2x-nine-months-later\"><span style=\"font-weight: 400;\">we did it<\/span><\/a><span style=\"font-weight: 400;\">. The results have been significant across the board, but the number that matters most for this post: downtime from breaking code changes dropped 35%, even as our deployments doubled. Shipping faster made us safer. As we modernize how we build and ship software, we systematically surface bottlenecks and tackle them. One of the biggest we&#8217;ve found? PR review.<\/span><\/p>\n<h2 id=\"the-pr-review-problem\">The PR review problem<\/h2>\n<p><span style=\"font-weight: 400;\">Humans simply don&#8217;t have the time or mental capacity to properly review the volume of AI-generated code we&#8217;re now producing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When an AI Agent can produce a working implementation in minutes, waiting hours or days for a human to review it is an impedance mismatch. The production line is moving faster than the quality gate can keep up.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When that happens, one of two things follows: either the queue backs up and velocity drops, or, more dangerously, humans start rubber-stamping. Glancing at a diff, skimming the description, clicking approve.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Some companies are drifting into this failure mode silently. We chose to confront it head-on and built a rigorous solution.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">PR review, done properly, is a genuinely complicated process. A good reviewer assesses the quality of the problem statement based on the PR description. They confirm the changeset actually matches the stated intent. They review the code against best practices, look for logical issues, apply their personal product context to validate the changes make sense, and check for performance issues, safety concerns, and more. No single human reviewer realistically has experience to properly cover every one of these dimensions on every PR, especially not under time pressure. And as we&#8217;ll see in the data, the baseline we&#8217;ve been comparing against, human review, was weaker than most of us assumed.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">So we asked ourselves: what if we could do better?\u00a0<\/span><\/p>\n<h2 id=\"how-our-pr-review-agent-works\">How our PR review Agent works<\/h2>\n<p><span style=\"font-weight: 400;\">Our PR review Agent doesn&#8217;t treat code review as a single task. It decomposes it into separate sub-jobs, each handled by an independent sub-Agent. One assesses the quality of the problem description. Another checks whether the diff actually aligns with the stated intent. Another reviews for safety concerns. Another checks for logical correctness. Another reviews against best practices and known anti-patterns. And so on.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The result is that every PR is reviewed as if a dozen of our most tenured and knowledgeable engineers were all looking at it simultaneously, each bringing their own specialist lens. In the past, getting that breadth of review on a single PR was impossible. Now it&#8217;s the default.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A human reviewer typically focuses on the actual code changes, the diff. Our Agent goes deeper. It traces execution paths, following the implications of a change through the codebase. This is something humans rarely had time to do, even when they wanted to.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A real example:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">While testing our new PR review Agent on a set of historical PRs, we found it flagging a one-line text copy change as incorrect. On the surface, it looked completely harmless, just a text update. We assumed it was a mistake, but it wasn&#8217;t. Our Agent caught that the new copy contradicted an existing validation mechanism elsewhere in the codebase. No human reviewer would have realistically found this unless they happened to have written that validation code very recently. Our Agent catches this kind of thing consistently, every time, because it&#8217;s always tracing execution.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The review isn&#8217;t generic either. It&#8217;s grounded in Intercom-specific guidance that our engineers have built and continue to refine, encoding the same context, standards, and product knowledge they&#8217;d apply if they were reviewing the PR themselves. When the Agent reviews a PR, engineers flag whether the review comments were helpful or not, and that feedback continuously sharpens the guidance. It&#8217;s a flywheel: the more our engineers invest in teaching the system how to think about our codebase, the better every subsequent review gets.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Automated approval is also never forced. Any engineer can request a human review on any change, at any time. The system is a tool, not a mandate. At Intercom, shipping code doesn&#8217;t end at merge. The engineer who ships a change is expected to watch it go live, monitor its behaviour in production, and be ready to roll back if something isn&#8217;t right. AI approval doesn&#8217;t change that. The human who ships the code remains accountable for the outcome.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-31950 aligncenter\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/pr-funnel-scaled.png\" alt=\"Graph showing 19.2% of all PRs fully auto-approved by AI, 60% are evaluated by AI\" width=\"2560\" height=\"1384\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/pr-funnel-scaled.png 2560w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/pr-funnel-300x162.png 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/pr-funnel-700x378.png 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/pr-funnel-768x415.png 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/pr-funnel-1536x830.png 1536w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/pr-funnel-2048x1107.png 2048w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/pr-funnel-1320x713.png 1320w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<h2 id=\"not-just-faster-safer\">Not just faster; safer<\/h2>\n<p><span style=\"font-weight: 400;\">The naive take on AI-approved PRs is that it&#8217;s just a rubber-stamp LLM call so that humans don&#8217;t have to bother. A convenience feature. That misses what&#8217;s actually happening.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our Agent is strict. It won&#8217;t approve large PRs. If a change is too big, too complex, or too broad in scope, it flags it and requires it to be broken down. Creating a direct, positive incentive for engineers to ship smaller, more incremental, well-scoped changes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This matters enormously for safety. Small changes are easier to review, easier to test, easier to understand, and, critically, easier to roll back when something goes wrong. This is the same principle that has always underpinned <\/span><a href=\"https:\/\/www.intercom.com\/blog\/ship-fast-safe-learn-from-production\/\"><span style=\"font-weight: 400;\">our shipping culture<\/span><\/a><span style=\"font-weight: 400;\">, but now the PR review Agent actively enforces it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It&#8217;s tempting to look at a goal like &#8220;&gt;50% AI-approved PRs&#8221; and worry that we&#8217;re optimizing for the metric rather than the outcome. We see it differently. Our goal was to remove a bottleneck that, if left unchecked, risked pushing engineers towards rubber-stamping reviews under time pressure.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">On the surface, our PR review Agent is only a solution to &#8220;humans don&#8217;t have time to review PRs.&#8221; But what it really is, at its core, is a safety mechanism. It ensures we continue shipping fast, in small increments, maintaining and increasing our heartbeat, even as the volume of AI-generated code grows.<\/span><\/p>\n<h2 id=\"the-data\">The data<\/h2>\n<p><span style=\"font-weight: 400;\">We didn&#8217;t assume AI review would be good enough, we actively ran an experiment.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our hypothesis was that AI review could match or outperform human review quality, measured by the outcomes that actually matter: were the changes correct? Did they cause problems in production? How quickly were they reviewed and approved?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We started with a controlled pilot of over 100 PRs through the AI approval pipeline. The results: zero reverts of AI-approved PRs, and a 6\u201316x improvement in time-to-approval at the 75th percentile. Since then, the system has scaled significantly. In the first four weeks of broader rollout, 497 PRs went fully autonomous, with Claude writing the code and our AI approval system reviewing, approving, and shipping to production.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-31948 aligncenter\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/approval-time-scaled.png\" alt=\"Graph showing AI approval is 5x faster than human review\" width=\"2560\" height=\"1210\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/approval-time-scaled.png 2560w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/approval-time-300x142.png 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/approval-time-700x331.png 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/approval-time-768x363.png 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/approval-time-1536x726.png 1536w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/approval-time-2048x968.png 2048w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/approval-time-1320x624.png 1320w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Beyond the approval pipeline itself, we also looked more broadly at how AI-authored code performs in production compared to human-authored code. AI-authored backend code had a revert rate of 0.53%, compared to 5.39% for human-authored. On the frontend, it was 0.22% versus 2.00%.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-31949 aligncenter\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/revert-rates-scaled.png\" alt=\"10X lower revert rate for AI-Authored code\" width=\"2560\" height=\"1531\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/revert-rates-scaled.png 2560w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/revert-rates-300x179.png 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/revert-rates-700x419.png 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/revert-rates-768x459.png 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/revert-rates-1536x919.png 1536w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/revert-rates-2048x1225.png 2048w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/revert-rates-1320x790.png 1320w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">AI-authored code, reviewed and approved through our automated pipeline, is being reverted at a fraction of the rate of human-authored, human-approved code. We don&#8217;t expect that to hold at zero forever, but the data so far tells us that the quality bar our Agent holds is at least as high as the one humans were holding, and in many cases higher.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">And perhaps the most important perspective shift: those product changes that did cause outages in the past? They were all reviewed and approved by humans. Human review is not a guarantee of safety. It never was. It&#8217;s a useful heuristic, but one with real limitations that we&#8217;ve been quietly accepting for decades.<\/span><\/p>\n<h2 id=\"staying-compliant-while-we-innovate\">Staying compliant while we innovate<\/h2>\n<p><span style=\"font-weight: 400;\">Everything we&#8217;ve described in this post, the sub-Agent architecture, the traceability, the labelling, the data, none of it was built just to make the system fast. It was built to make the system auditable. That was a design constraint from day one.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Every AI-approved PR is labelled, logged, and queryable. The review comments, the approval decision, the test results, the merge event: all recorded. The evidence an auditor expects to see is the same whether a human or an AI approved the change. The &#8220;who&#8221; may change, but the &#8220;what&#8221; doesn\u2019t.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We engaged our auditors, Schellman, early, before we scaled. We proactively worked with them to confirm that our automated review processes and the evidence they produce meet the requirements of our <\/span><a href=\"https:\/\/trust.intercom.com\/\"><span style=\"font-weight: 400;\">compliance frameworks<\/span><\/a><span style=\"font-weight: 400;\">, including SOC 2, HIPAA, ISO 27001, ISO 42001, and AIUC-1, among others. We think AI-driven change management can meet and exceed the standards that human-driven processes set, and we want to help prove that.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We see this as a feature of building the system the right way, not an extra hurdle we had to clear. When you build for safety, compliance follows.<\/span><\/p>\n<h2 id=\"whats-next\">What&#8217;s next<\/h2>\n<p><span style=\"font-weight: 400;\">You can only go so far with PR review as a safety mechanism, no matter how good the reviewer is, human or AI. Only in production do you discover the unknown unknowns. The majority of Intercom&#8217;s largest outages weren&#8217;t even caused by changes to product code at all. They were infrastructure issues, unanticipated customer usage patterns, or third-party outages. PR review, whether human or AI, was never going to catch those. That&#8217;s why, in parallel, we&#8217;re also working on an Agent that proactively diagnoses issues in production. We\u2019ll share more on this soon.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Speed has always been at the core of how we build at Intercom, not in spite of safety, but because of it. And we\u2019re getting even faster with AI. It\u2019s easy to assume that AI-approved PRs would lead to a drop in quality and safety but our data proves otherwise. Our heartbeat is just getting stronger.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re producing more code than ever at Intercom. Here&#8217;s how we&#8217;re safely using AI for PR approval.<\/p>\n","protected":false},"author":492,"featured_media":31952,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"category":[25198,12898],"tags":[604,25174,25480],"coauthors":[24945,24847],"class_list":["post-31947","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-ml","category-engineering","tag-ai","tag-fin","tag-safety"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>AI is approving our pull requests: Here&#039;s how we made it safe - The Intercom Blog<\/title>\n<meta name=\"description\" content=\"We&#039;re producing more code than ever at Intercom. Here&#039;s how we&#039;re safely using AI for PR approval.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AI is approving our pull requests: Here&#039;s how we made it safe\" \/>\n<meta property=\"og:description\" content=\"We&#039;re producing more code than ever at Intercom. Here&#039;s how we&#039;re safely using AI for PR approval.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/\" \/>\n<meta property=\"og:site_name\" content=\"The Intercom Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/intercominc\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-21T15:36:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/header-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1778\" \/>\n\t<meta property=\"og:image:height\" content=\"830\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kesha Mykhailov, Niamh Young\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@intercom\" \/>\n<meta name=\"twitter:site\" content=\"@intercom\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kesha Mykhailov, Niamh Young\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. 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:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/\"},\"author\":{\"name\":\"Kesha Mykhailov\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/e874fcf09f7244265d15c0b172703765\"},\"headline\":\"AI is approving our pull requests: Here&#8217;s how we made it safe\",\"datePublished\":\"2026-04-21T15:36:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/\"},\"wordCount\":1812,\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/header-2.png\",\"keywords\":[\"AI\",\"Fin\",\"Safety\"],\"articleSection\":[\"AI &amp; Automation\",\"Engineering\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/\",\"name\":\"AI is approving our pull requests: Here's how we made it safe - The Intercom Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/header-2.png\",\"datePublished\":\"2026-04-21T15:36:28+00:00\",\"description\":\"We're producing more code than ever at Intercom. Here's how we're safely using AI for PR approval.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/header-2.png\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/header-2.png\",\"width\":1778,\"height\":830,\"caption\":\"How we made AI-approved PRs safe\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"name\":\"The Intercom Blog\",\"description\":\"Articles and Podcasts on Customer Service, AI and Automation, Product, and more\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\",\"name\":\"The Intercom Blog\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"width\":1000,\"height\":1000,\"caption\":\"The Intercom Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/intercominc\",\"https:\\\/\\\/x.com\\\/intercom\",\"https:\\\/\\\/www.instagram.com\\\/intercom\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/2491343\",\"https:\\\/\\\/www.pinterest.ie\\\/intercom\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJG0MvLP03kyzzAkD-w98aQ\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Intercom_(company)\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/e874fcf09f7244265d15c0b172703765\",\"name\":\"Kesha Mykhailov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef7266e0e36aa65eb3a3ab642e91cee8997aeba88e9ba1ec6cb1e4cebf2736d7?s=96&d=mm&r=pg899dd2c6c8e1021aa865821aadcac5d1\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef7266e0e36aa65eb3a3ab642e91cee8997aeba88e9ba1ec6cb1e4cebf2736d7?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef7266e0e36aa65eb3a3ab642e91cee8997aeba88e9ba1ec6cb1e4cebf2736d7?s=96&d=mm&r=pg\",\"caption\":\"Kesha Mykhailov\"},\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/author\\\/inokentii-mykhailovintercom-io\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"AI is approving our pull requests: Here's how we made it safe - The Intercom Blog","description":"We're producing more code than ever at Intercom. Here's how we're safely using AI for PR approval.","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:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/","og_locale":"en_US","og_type":"article","og_title":"AI is approving our pull requests: Here's how we made it safe","og_description":"We're producing more code than ever at Intercom. Here's how we're safely using AI for PR approval.","og_url":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/","og_site_name":"The Intercom Blog","article_publisher":"https:\/\/www.facebook.com\/intercominc","article_published_time":"2026-04-21T15:36:28+00:00","og_image":[{"width":1778,"height":830,"url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/header-2.png","type":"image\/png"}],"author":"Kesha Mykhailov, Niamh Young","twitter_card":"summary_large_image","twitter_creator":"@intercom","twitter_site":"@intercom","twitter_misc":{"Written by":"Kesha Mykhailov, Niamh Young","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/#article","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/"},"author":{"name":"Kesha Mykhailov","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/e874fcf09f7244265d15c0b172703765"},"headline":"AI is approving our pull requests: Here&#8217;s how we made it safe","datePublished":"2026-04-21T15:36:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/"},"wordCount":1812,"publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/header-2.png","keywords":["AI","Fin","Safety"],"articleSection":["AI &amp; Automation","Engineering"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/","url":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/","name":"AI is approving our pull requests: Here's how we made it safe - The Intercom Blog","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/#primaryimage"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/header-2.png","datePublished":"2026-04-21T15:36:28+00:00","description":"We're producing more code than ever at Intercom. Here's how we're safely using AI for PR approval.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/ai-is-approving-our-pull-requests-heres-how-we-made-it-safe\/#primaryimage","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/header-2.png","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/header-2.png","width":1778,"height":830,"caption":"How we made AI-approved PRs safe"},{"@type":"WebSite","@id":"https:\/\/www.intercom.com\/blog\/#website","url":"https:\/\/www.intercom.com\/blog\/","name":"The Intercom Blog","description":"Articles and Podcasts on Customer Service, AI and Automation, Product, and more","publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intercom.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.intercom.com\/blog\/#organization","name":"The Intercom Blog","url":"https:\/\/www.intercom.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","width":1000,"height":1000,"caption":"The Intercom Blog"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/intercominc","https:\/\/x.com\/intercom","https:\/\/www.instagram.com\/intercom\/","https:\/\/www.linkedin.com\/company\/2491343","https:\/\/www.pinterest.ie\/intercom\/","https:\/\/www.youtube.com\/channel\/UCJG0MvLP03kyzzAkD-w98aQ","https:\/\/en.wikipedia.org\/wiki\/Intercom_(company)"]},{"@type":"Person","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/e874fcf09f7244265d15c0b172703765","name":"Kesha Mykhailov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ef7266e0e36aa65eb3a3ab642e91cee8997aeba88e9ba1ec6cb1e4cebf2736d7?s=96&d=mm&r=pg899dd2c6c8e1021aa865821aadcac5d1","url":"https:\/\/secure.gravatar.com\/avatar\/ef7266e0e36aa65eb3a3ab642e91cee8997aeba88e9ba1ec6cb1e4cebf2736d7?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ef7266e0e36aa65eb3a3ab642e91cee8997aeba88e9ba1ec6cb1e4cebf2736d7?s=96&d=mm&r=pg","caption":"Kesha Mykhailov"},"url":"https:\/\/www.intercom.com\/blog\/author\/inokentii-mykhailovintercom-io\/"}]}},"jetpack_featured_media_url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2026\/04\/header-2.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/31947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/users\/492"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/comments?post=31947"}],"version-history":[{"count":0,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/31947\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media\/31952"}],"wp:attachment":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media?parent=31947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/category?post=31947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/tags?post=31947"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/coauthors?post=31947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}