{
  "apiVersion": "v1",
  "organization": {
    "id": "customer-io",
    "name": "Customer.io",
    "sector": "software",
    "aiVendor": false,
    "domain": "customer.io",
    "passages": 6,
    "checked": 6,
    "url": "https://the-ai-record.com/organizations/customer-io",
    "json": "https://the-ai-record.com/api/v1/organizations/customer-io.json",
    "description": "Customer.io sells a customer engagement platform for building automated, personalized messaging journeys, plus a customer data platform and an email code editor.",
    "ownership": null,
    "ticker": null,
    "hq": null,
    "founded": "2012",
    "website": "https://customer.io",
    "profileSource": "https://customer.io/contact/",
    "figures": [],
    "topics": [
      "code-review",
      "adoption-and-usage",
      "ai-approves-code",
      "developer-productivity",
      "measuring-impact",
      "autonomy-and-oversight"
    ]
  },
  "people": [
    {
      "id": "joey-bates",
      "name": "Joey Bates",
      "role": "Developer Enablement",
      "level": "practitioner",
      "levelMeaning": "Someone doing the work at the organization.",
      "organization": "Customer.io",
      "organizationId": "customer-io",
      "passages": 6,
      "reported": 0,
      "url": "https://the-ai-record.com/people/joey-bates",
      "json": "https://the-ai-record.com/api/v1/people/joey-bates.json"
    }
  ],
  "passages": [
    {
      "id": "customer-io-ai-approving-over-60-percent-prs-feedback-minutes-2025",
      "text": "The AI is approving over 60% of all PRs. For those PRs, engineers get feedback in minutes, not hours.",
      "context": null,
      "speaker": "Joey Bates",
      "speakerId": "joey-bates",
      "speakerUrl": "https://the-ai-record.com/people/joey-bates",
      "speakerLevel": "practitioner",
      "role": "Developer Enablement",
      "voice": "person",
      "organization": "Customer.io",
      "organizationId": "customer-io",
      "organizationUrl": "https://the-ai-record.com/organizations/customer-io",
      "aiVendor": false,
      "work": {
        "title": "How we taught AI to approve pull requests (not just review them)",
        "type": "post",
        "date": "2025-11-10",
        "publisher": "Customer.io",
        "locator": "Results: Speed and cognitive relief",
        "url": "https://customer.io/learn/how-we-work/how-we-taught-ai-to-approve-pull-requests"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-04"
      },
      "topics": [
        "code-review",
        "adoption-and-usage",
        "ai-approves-code"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [
        {
          "metric": "share-prs-ai-approved",
          "value": 0.6,
          "unit": "share",
          "definition": "Share of all PRs the AI approves (stated as \"over 60%\")",
          "level": "human-out"
        }
      ],
      "url": "https://the-ai-record.com/passages/customer-io-ai-approving-over-60-percent-prs-feedback-minutes-2025",
      "json": "https://the-ai-record.com/api/v1/passages/customer-io-ai-approving-over-60-percent-prs-feedback-minutes-2025.json"
    },
    {
      "id": "customer-io-merge-time-dropped-3-5-hours-33-minutes-2025",
      "text": "For PRs that got AI approval, merge time dropped from 3.5 hours to 33 minutes. That's 6.4x faster.",
      "context": null,
      "speaker": "Joey Bates",
      "speakerId": "joey-bates",
      "speakerUrl": "https://the-ai-record.com/people/joey-bates",
      "speakerLevel": "practitioner",
      "role": "Developer Enablement",
      "voice": "person",
      "organization": "Customer.io",
      "organizationId": "customer-io",
      "organizationUrl": "https://the-ai-record.com/organizations/customer-io",
      "aiVendor": false,
      "work": {
        "title": "How we taught AI to approve pull requests (not just review them)",
        "type": "post",
        "date": "2025-11-10",
        "publisher": "Customer.io",
        "locator": "Results: Speed and cognitive relief",
        "url": "https://customer.io/learn/how-we-work/how-we-taught-ai-to-approve-pull-requests"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-04"
      },
      "topics": [
        "developer-productivity",
        "measuring-impact",
        "code-review"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [
        {
          "metric": "median-merge-time-ai-approved",
          "value": 33,
          "unit": "minutes",
          "definition": "Median merge time for AI-approved PRs, against a 3.5 hour median before the AI review system",
          "level": "human-out"
        }
      ],
      "url": "https://the-ai-record.com/passages/customer-io-merge-time-dropped-3-5-hours-33-minutes-2025",
      "json": "https://the-ai-record.com/api/v1/passages/customer-io-merge-time-dropped-3-5-hours-33-minutes-2025.json"
    },
    {
      "id": "customer-io-taught-ai-approve-pull-requests-500-approved-2025",
      "text": "We taught AI to approve pull requests for merging. After 500 AI-approved PRs: zero production incidents, and merge time dropped from 3.5 hours to 33 minutes.",
      "context": null,
      "speaker": "Joey Bates",
      "speakerId": "joey-bates",
      "speakerUrl": "https://the-ai-record.com/people/joey-bates",
      "speakerLevel": "practitioner",
      "role": "Developer Enablement",
      "voice": "person",
      "organization": "Customer.io",
      "organizationId": "customer-io",
      "organizationUrl": "https://the-ai-record.com/organizations/customer-io",
      "aiVendor": false,
      "work": {
        "title": "How we taught AI to approve pull requests (not just review them)",
        "type": "post",
        "date": "2025-11-10",
        "publisher": "Customer.io",
        "locator": "Article summary",
        "url": "https://customer.io/learn/how-we-work/how-we-taught-ai-to-approve-pull-requests"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-04"
      },
      "topics": [
        "code-review",
        "autonomy-and-oversight",
        "ai-approves-code"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [
        {
          "metric": "ai-approved-prs",
          "value": 500,
          "unit": "count",
          "definition": "AI-approved pull requests at the time of writing",
          "level": "human-out"
        },
        {
          "metric": "median-merge-time-ai-approved",
          "value": 33,
          "unit": "minutes",
          "definition": "Median time to merge for PRs that got AI approval; baseline 3.5 hours before the AI review system",
          "level": "human-out"
        }
      ],
      "url": "https://the-ai-record.com/passages/customer-io-taught-ai-approve-pull-requests-500-approved-2025",
      "json": "https://the-ai-record.com/api/v1/passages/customer-io-taught-ai-approve-pull-requests-500-approved-2025.json"
    },
    {
      "id": "customer-io-high-risk-prs-flagged-human-review-took-day-2025",
      "text": "High-risk PRs that the system flagged for human review took about a day to approve. That's longer than the baseline. This is correct behavior. These are architectural changes, infrastructure modifications, and breaking changes. They need time and human judgment.",
      "context": null,
      "speaker": "Joey Bates",
      "speakerId": "joey-bates",
      "speakerUrl": "https://the-ai-record.com/people/joey-bates",
      "speakerLevel": "practitioner",
      "role": "Developer Enablement",
      "voice": "person",
      "organization": "Customer.io",
      "organizationId": "customer-io",
      "organizationUrl": "https://the-ai-record.com/organizations/customer-io",
      "aiVendor": false,
      "work": {
        "title": "How we taught AI to approve pull requests (not just review them)",
        "type": "post",
        "date": "2025-11-10",
        "publisher": "Customer.io",
        "locator": "Results: Safety validation",
        "url": "https://customer.io/learn/how-we-work/how-we-taught-ai-to-approve-pull-requests"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-04"
      },
      "topics": [
        "autonomy-and-oversight",
        "code-review",
        "ai-approves-code"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/customer-io-high-risk-prs-flagged-human-review-took-day-2025",
      "json": "https://the-ai-record.com/api/v1/passages/customer-io-high-risk-prs-flagged-human-review-took-day-2025.json"
    },
    {
      "id": "customer-io-most-ai-code-review-tools-stop-comments-approves-2025",
      "text": "Most AI code review tools stop at comments. They suggest improvements, flag issues, and point out problems. We built a system that approves PRs for merging.",
      "context": null,
      "speaker": "Joey Bates",
      "speakerId": "joey-bates",
      "speakerUrl": "https://the-ai-record.com/people/joey-bates",
      "speakerLevel": "practitioner",
      "role": "Developer Enablement",
      "voice": "person",
      "organization": "Customer.io",
      "organizationId": "customer-io",
      "organizationUrl": "https://the-ai-record.com/organizations/customer-io",
      "aiVendor": false,
      "work": {
        "title": "How we taught AI to approve pull requests (not just review them)",
        "type": "post",
        "date": "2025-11-10",
        "publisher": "Customer.io",
        "locator": "Problem: The cognitive weight of waiting",
        "url": "https://customer.io/learn/how-we-work/how-we-taught-ai-to-approve-pull-requests"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-04"
      },
      "topics": [
        "code-review",
        "autonomy-and-oversight",
        "ai-approves-code"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/customer-io-most-ai-code-review-tools-stop-comments-approves-2025",
      "json": "https://the-ai-record.com/api/v1/passages/customer-io-most-ai-code-review-tools-stop-comments-approves-2025.json"
    },
    {
      "id": "customer-io-some-changes-beyond-automation-architectural-decisions-2025",
      "text": "Some changes are beyond automation: architectural decisions, complex trade-offs, and organizational implications. The system recognizes these boundaries and escalates.",
      "context": null,
      "speaker": "Joey Bates",
      "speakerId": "joey-bates",
      "speakerUrl": "https://the-ai-record.com/people/joey-bates",
      "speakerLevel": "practitioner",
      "role": "Developer Enablement",
      "voice": "person",
      "organization": "Customer.io",
      "organizationId": "customer-io",
      "organizationUrl": "https://the-ai-record.com/organizations/customer-io",
      "aiVendor": false,
      "work": {
        "title": "How we taught AI to approve pull requests (not just review them)",
        "type": "post",
        "date": "2025-11-10",
        "publisher": "Customer.io",
        "locator": "Lessons learned: Building systems engineers trust",
        "url": "https://customer.io/learn/how-we-work/how-we-taught-ai-to-approve-pull-requests"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-04"
      },
      "topics": [
        "autonomy-and-oversight"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/customer-io-some-changes-beyond-automation-architectural-decisions-2025",
      "json": "https://the-ai-record.com/api/v1/passages/customer-io-some-changes-beyond-automation-architectural-decisions-2025.json"
    }
  ],
  "notice": [
    "Every passage is reproduced word for word from the cited source.",
    "Check the verification status: \"reported\" means not yet confirmed by an independent second reader.",
    "Organizations flagged aiVendor sell AI tools or services and have a reason to publish flattering numbers.",
    "An empty result means the archive holds nothing on it, not that nobody has said anything."
  ]
}