Qonto Evaluation Coverage - Week of 2026-06-22
Scope
- Customer: Qonto
- Organization ID: 33
- Week: 2026-06-22 through 2026-06-28 in Europe/Paris
- UTC query window: 2026-06-21 22:00:00 through 2026-06-28 22:00:00
- Cohort: active, human, evaluable Qonto employees with a team
- Evaluation target: 5 chat/email tickets per week per agent, 3 call tickets per week per agent
- Starting focus: 79 of 380 teamed/evaluable employees had zero active completed AI evaluations
This note is the focused investigation log for the week of 2026-06-22. The first section explains the 79 agents with zero evaluations. Later sections should cover the other quota-miss buckets, especially agents who had some evaluations but did not reach the chat/email or call targets.
An eligible candidate pair means one (employee, conversation) pair where:
conversation_agents.employee_id = employee.idconversation_agents.eligible_for_qa_evaluation = true- the conversation was resolved in the 2026-06-22 week
- the conversation had
ticket_status = resolved
Recommendations and impact
The first list contains configuration choices for Qonto. The second list contains Rulebase-owned fixes.
Customer recommendations
1. Review the strict chat/email eligibility policy
For agents who missed the 5/week chat/email target, the largest exact blocker was Qonto’s custom AI/freeform eligibility policy. These are not Rulebase ingestion failures; they are policy outcomes from Qonto’s configured eligibility instructions.
Based on a production rerun on 2026-07-02 for the week of June 22:
| Recommendation | Estimated impact | Notes |
|---|---|---|
| Decide whether to relax Qonto’s chat/email eligibility policy | Up to 243 additional target-filling chat/email evaluations for 114 under-target agents | 1,228 resolved QA-eligible chat/email candidate pairs were stopped by AI/freeform policy. The largest policy theme was the single-agent / multiple-agent rule. See full details. |
2. Stop waiting for linked tickets to close
Today, some resolved tickets are not evaluated because another related ticket is still open. Turning this off would allow Rulebase to evaluate the resolved ticket without waiting for every linked ticket in the same customer issue to close.
Based on the week of June 22:
| Recommendation | Estimated impact | Notes |
|---|---|---|
| Evaluate resolved tickets even when related tickets are still open | Up to 191 additional target-filling chat/email evaluations for 101 under-target agents | In the zero-evaluation group, 27 eligible resolved tickets were blocked by this rule. Across all chat/email under-target agents, 559 candidate pairs were blocked. See full details. |
3. Extend the evaluation lookback window
Today, some tickets are skipped because the customer opened them more than 30 days before they were resolved. This can miss long-running tickets even when the agent resolved them during the target week.
Based on a production rerun on 2026-07-02 for the week of June 22:
| Recommendation | Estimated impact | Notes |
|---|---|---|
| Raise the window to 90 days | Up to 45 additional target-filling chat/email evaluations for 33 under-target agents | Captures 52 of 60 outside-window chat/email candidate pairs in the under-target group. See full details. |
| Raise the window to 100 days | Up to 47 additional target-filling chat/email evaluations for 34 under-target agents | Captures 55 of 60 outside-window chat/email candidate pairs in the under-target group. See full details. |
| Raise the window to 120 days | Up to 48 additional target-filling chat/email evaluations for 35 under-target agents | Captures 56 of 60 outside-window chat/email candidate pairs in the under-target group. Capturing all 60 would require 396 days because of one very old ticket. See full details. |
Rulebase follow-ups
1. Fix call ticket channel detection before sampling
Today, some tickets clearly look like calls, but the channel value used by the coverage rules is blank. This is a Rulebase-side classification issue: those tickets can miss Qonto’s existing call sampling rule even though they are call conversations.
Based on the week of June 22:
| Recommendation | Estimated impact | Notes |
|---|---|---|
| Backfill and fix the missing call channel value | Restores call sampling eligibility for affected call tickets; in Costas A.’s zero-evaluation case, 5 eligible call tickets were skipped by sampling | This is wider than one agent: 1,451 Qonto call tickets in the week of June 22 had a blank channel value, and 95 more appeared in the partial week of June 29. See full details. |
2. Watch call coverage after the source-channel fix lands
Some call evaluations were manually marked inactive during cleanup, so the next week after rulebase-co/rulebase#7855 is merged and the call source-channel backfill is run should be treated as a monitoring week rather than a clean before/after read.
What to watch:
- Newly backfilled call tickets should enter Qonto’s existing call coverage rule instead of sitting outside sampling.
- Active completed call evaluations should rise with the fixed source-channel data.
- If sampling counters show agents at the call target but active completed call evaluations are still low, investigate inactive completed call rows and sampling-counter reconciliation before treating the remaining gap as low ticket volume.
3. Audit chat/email evaluations that completed but did not count
Some chat/email candidate pairs reached a completed evaluation state, but still did not count as active completed chat/email evaluations for the target agent in the effective week.
Based on a production rerun on 2026-07-02 for the week of June 22:
| Follow-up | Estimated impact | Notes |
|---|---|---|
| Audit completed-but-not-counting chat/email evaluations | Category-capped impacts: 38 inactive completions, 10 completed requests not active for this agent, 6 same-agent completions outside the effective week or active window, and 1 other-agent completion | These rows are exact but not additive without a combined per-agent cap. See full details. |
4. Review chat/email no_agents_sampled rows
Some requests passed earlier gates, but no agent was selected when the evaluation started. For agents who were still under the chat/email target, this should be checked against sampling counter state and agent partition selection.
Based on a production rerun on 2026-07-02 for the week of June 22:
| Follow-up | Estimated impact | Notes |
|---|---|---|
Review no_agents_sampled for chat/email under-target agents | Up to 26 additional target-filling chat/email evaluations for 22 agents | 89 resolved QA-eligible chat/email candidate pairs landed in this bucket. See full details. |
Zero active completed AI evaluations
Zero-evaluation definition: no active, completed AI qa_agent_evaluations in the week.
Why the 79 zero-evaluation agents had no AI evaluations
| Primary reason | Employees | Eligible candidate pairs |
|---|---|---|
| No resolved handled conversations | 44 | 0 |
| AI/freeform ineligible | 12 | 46 |
| Resolved handled conversations, but none eligible for QA | 8 | 0 |
| Linked tickets still open | 6 | 20 |
| No customer response | 4 | 17 |
| Outside evaluation window | 3 | 11 |
| Not sampled | 1 | 8 |
| Request completed, but not as an active completed eval for this agent | 1 | 1 |
The highest-impact finding is that 52 of the 79 zero-evaluation employees had no QA-eligible resolved candidate conversations at all:
- 44 had no resolved handled conversations in the week.
- 8 had resolved handled conversations, but every conversation-agent link was
eligible_for_qa_evaluation = false.
For the remaining 27 employees, the largest downstream blocker was Qonto’s AI/freeform eligibility policy.
Samples below are representative rows, mostly sorted by candidate or handled volume. Conversation URLs are examples, not exhaustive.
No resolved handled conversations
These employees were active/evaluable and teamed, but had no resolved conversations attached through conversation_agents in the week. There are no example conversation URLs for this bucket because there were no resolved handled conversation links in the week.
| Employee prefix id | Name | Team | Resolved handled pairs | QA-eligible candidate pairs | Example conversation URLs |
|---|---|---|---|---|---|
employee_NmgBWKqeAdB1iReJOzpPb42n | Yassine M. | PS FL FR (Anaelle) | 0 | 0 | - |
employee_e7zRmPE5ADwWuR90Z2MYp98Q | Theophane Weber | AM BL FR (Julie) | 0 | 0 | - |
employee_DqyQzkwoZ7q5fB0dlm68npR5 | Samir MK. | AM FL FR (Julie) | 0 | 0 | - |
employee_1k6RxVWDArYzcLjWZ7Kq3PdQ | Melek A. | ECT FL FR | 0 | 0 | - |
employee_dQEoj4rVl6kXIJwvOxe3aJb0 | Kevin M.L. | Frontline team ES | 0 | 0 | - |
AI/freeform ineligible
These employees had eligible resolved candidate conversations, but their candidate tickets were primarily rejected by Qonto’s AI/freeform eligibility instructions. The dominant themes seen in this bucket are Qonto-specific policy checks: multiple human agents on the same customer conversation, no meaningful two-way exchange, outbound-call exclusions, and authentication/identity flows where the underlying issue was not handled.
| Employee prefix id | Name | Team | Resolved handled pairs | QA-eligible candidate pairs | Pairs in this bucket | Example conversation URLs |
|---|---|---|---|---|---|---|
employee_1k6RxVWDArYzcLamZ7Kq3PdQ | Alessandra T A. | Frontline Team IT | 23 | 18 | 11 | conversation_yE6wl1eRk5kf4KKoXaqO4o9b , conversation_gwN1a2pBr5EfOO84XdxGyj5M , conversation_KdyaEjbY6LgCjk6bBkGxpvzJ |
employee_da0gxRM6Oe3kh1dyAnP5z1KB | Mansour W M. | AM FL FR (Axelle) | 7 | 7 | 5 | conversation_gjrAxVDX9n2iv9j6B6dv8bQl , conversation_NQ7xnGAXldqtaAbQX8pgyJKd , conversation_PzJ7xaQR38vUo7ZxY3AwL481 |
employee_g5j74RKGZVEbFgqeOXN10P2Y | Youness MK. | AM FL FR (Julie) | 12 | 6 | 4 | conversation_PreWlJZBQVKtq0wERV49AbLw , conversation_noWeAqvRPgWSmrGjBLlQxGPz , conversation_Z9jo5GvBb5ZfbD4xXm30MbPV |
employee_oa2Q1GvRl0xYH42gl36wKNyk | Nenad Savic | PS FL DE (Filip) | 10 | 4 | 4 | conversation_59kvLMoYjn1ip40PYExr8ng0 , conversation_vEWjxweXG41CZaqNBrlMyVnJ , conversation_PreWlJZBQVKtqa8JRV49AbLw |
employee_61GqnDYoZaQNtWLXZXQzw8K5 | Redouane H M. | AM FL FR (Axelle) | 2 | 1 | 1 | conversation_plwyx6eYAyDF0V9kYANJQWkd |
Resolved handled conversations, but none eligible for QA
These employees had resolved conversations attached through conversation_agents, but none of those conversation-agent links were QA eligible. The Kaba spot check showed mostly internal note parts rather than customer-facing chat/email/call parts, which explains why eligible_for_qa_evaluation stayed false.
| Employee prefix id | Name | Team | Resolved handled pairs | QA-eligible candidate pairs | Example conversation URLs |
|---|---|---|---|---|---|
employee_da0gxRM6Oe3kh150AnP5z1KB | Kaba C M. - (M) | AM FL FR (Axelle) | 29 | 0 | conversation_GN4DOW6XDWLsxdl7Yl3L81vx , conversation_JNkrywaRxkNF09gnB27nOp8q , conversation_5mEGxnoRwqNHKbKbXpeKaJjg |
employee_NGVy6MQbO31bUPRBA1Enr7vL | Jihane N M. - (M) | AM FL FR (Axelle) | 9 | 0 | conversation_NEpqV6ZXZqmHe7QQYnK0b2or , conversation_pmQMAW2Y19zte92PYG5ne3Zj , conversation_bwLn1Z8Rn28tNr9lRQozA27e |
employee_dDvBjL10lprBTdv0Z4kJQKzV | Rihab A. | ECT FL FR | 3 | 0 | conversation_gwN1a2pBr5EfaaxKXdxGyj5M , conversation_lEkdn4mRen6igxLVY95WVz1A , conversation_oAv5WabYaejsL8ZkYwLkyGq6 |
employee_d2z9RaWKZWrPTw88OvbGNqPr | Fred M. | AM FL FR (Axelle) | 3 | 0 | conversation_Z8oVG14X587UnbzQYLMy7K6A , conversation_PgW2mJzBqEGI2Jn1Bdo3EOMK , conversation_yE6wl1eRk5kf4v5oXaqO4o9b |
employee_DpVW8no3AJnyCNj2AqRQMyv5 | Momo A. A. | Frontline Team IT | 2 | 0 | conversation_0rpo9ZqB41wUQrWlRyD4KaNM , conversation_lEkdn4mRen6iempeY95WVz1A |
Linked tickets still open
These employees had eligible resolved candidate conversations, but the primary reason no evaluation was produced was that related linked tickets were still open.
| Employee prefix id | Name | Team | Resolved handled pairs | QA-eligible candidate pairs | Pairs in this bucket | Example conversation URLs |
|---|---|---|---|---|---|---|
employee_dEjB1DpmA8m8txD3l6a0g2G4 | Thouraya A. | ECT FL FR | 9 | 5 | 2 | conversation_qWpgQ92YV4vC4OVJB8kVN4xj , conversation_aLd5bzZXKg8SxvoaXKnEv236 |
employee_mKLajqPVOMDBC8orlM97by6v | Bluett L. | Frontline team ES | 5 | 5 | 3 | conversation_KdaMlx7YmzehKrOxX8qPo1jw , conversation_jb1VkA6YEKlSJndLB7g25QN8 , conversation_egDP1O6YWzwhvLNGRMN4kjKW |
employee_M7yz8wV2Zqy3IzKpZgxEn5Yd | Yassine E MK. | PS FL FR (Gabrielle) | 4 | 4 | 2 | conversation_8e2aVKQY7NmfAxkgRvWZGlJy , conversation_gwN1a2pBr5Efar01XdxGyj5M |
employee_92WKJDNxZgGWfvY9ZRkEp0Br | Sergio A. | Frontline Team IT | 63 | 3 | 2 | conversation_ZjK27yWRMgJSlg2VXPzbmdka , conversation_M2pxrAKYN2Gt49bvYZln4k6j |
employee_LQxakwn2Oxb9Uy9aAypB6re0 | Julien Sempe | PS BL FR (Anaelle) | 2 | 2 | 2 | conversation_KdyaEjbY6LgCD5d8BkGxpvzJ , conversation_5lmMNGWYdGDHQWLyRzPQ4eVx |
Note: Thouraya A. had a tie between AI/freeform ineligible and linked tickets still open, with two candidate pairs in each bucket. The existing 79-agent breakdown places this employee in linked tickets, giving the documented 12 AI/freeform employees and 6 linked-ticket employees.
No customer response
These employees had eligible resolved candidate conversations, but the requests were skipped because the conversation did not have a qualifying customer response.
| Employee prefix id | Name | Team | Resolved handled pairs | QA-eligible candidate pairs | Pairs in this bucket | Example conversation URLs |
|---|---|---|---|---|---|---|
employee_MPm3NaYoOzyPI4pzl8RWdLVG | Judith Mulleras Gonzalez | Backline Team ES | 13 | 9 | 6 | conversation_oAv5WabYaejs65E0YwLkyGq6 , conversation_E5JmjpvY01dUpJKPX30KoaVP , conversation_zyWpJ86R2y4FbgMNBD1q5gdN |
employee_8myn9VjPAN73CL4jlbrEJaN2 | Maxime Le Louarn | PS BL FR (Anaelle) | 5 | 4 | 3 | conversation_KdaMlx7YmzehNkWnX8qPo1jw , conversation_KdaMlx7Ymzeh2DW7X8qPo1jw , conversation_plwyx6eYAyDFLA14YANJQWkd |
employee_V6yw4YG8ORxmHLkDApDRaWe1 | Uros Markovic | AM BL DE (Vojislav) | 2 | 2 | 2 | conversation_PgW2mJzBqEGIxD8NBdo3EOMK , conversation_0rpo9ZqB41wU5zAORyD4KaNM |
employee_DpVW8no3AJnyCYGEAqRQMyv5 | Martina Jaruschewski | AM BL DE (Vojislav) | 2 | 2 | 2 | conversation_jb1VkA6YEKlSJGJ9B7g25QN8 , conversation_yE6wl1eRk5kfPAVLXaqO4o9b |
Outside evaluation window
These employees had eligible resolved candidate conversations, but the requests were skipped as outside the evaluation window.
Qonto’s current evaluation_ticket_started_window_days is 30. The gate uses the ticket start time (started_at, falling back to external_created_at) relative to the time the QA cron writes the request/skip. For these eight skipped candidate pairs, the oldest ticket was Eya A.’s conversation_bwLn1Z8Rn28tE59MRQozA27e : it started on 2026-03-12 14:14:58 UTC and was skipped on 2026-06-24 12:03:48 UTC, 103.91 days later.
Minimum setting that would have let all eight pass when they were skipped last week: 104 days. If changing the setting after the fact and immediately replaying normal eligibility on 2026-07-02, the same oldest ticket is already 111.54 days old, so the immediate replay minimum is 112 days. A practical setting with some buffer is 120 days.
| Employee prefix id | Conversation | Ticket started at UTC | First outside-window skip at UTC | Age at skip | Minimum window days |
|---|---|---|---|---|---|
employee_DpVW8no3AJnyCRveAqRQMyv5 | conversation_bwLn1Z8Rn28tE59MRQozA27e | 2026-03-12 14:14:58 | 2026-06-24 12:03:48 | 103.91 | 104 |
employee_g5j74RKGZVEbFga4OXN10P2Y | conversation_57oV61vXv5NfMMNMY4lKkE2r | 2026-03-30 17:53:36 | 2026-06-23 09:46:19 | 84.66 | 85 |
employee_4qdo1VQzZyrbTDpWAX8kyN5L | conversation_plwyx6eYAyDFrZMZYANJQWkd | 2026-04-13 01:54:15 | 2026-06-22 06:30:04 | 70.19 | 71 |
employee_4qdo1VQzZyrbTDpWAX8kyN5L | conversation_NEpqV6ZXZqmHpElVYnK0b2or | 2026-04-20 12:39:26 | 2026-06-23 07:00:11 | 63.76 | 64 |
employee_4qdo1VQzZyrbTDpWAX8kyN5L | conversation_wp24ZDMYL73ia1LGRl9xg6jk | 2026-04-20 09:33:09 | 2026-06-22 11:15:10 | 63.07 | 64 |
employee_4qdo1VQzZyrbTDpWAX8kyN5L | conversation_egDP1O6YWzwhJGG3RMN4kjKW | 2026-04-23 08:24:15 | 2026-06-23 11:30:30 | 61.13 | 62 |
employee_4qdo1VQzZyrbTDpWAX8kyN5L | conversation_ZjK27yWRMgJSWMpmXPzbmdka | 2026-04-26 13:03:55 | 2026-06-23 12:30:20 | 57.98 | 58 |
employee_g5j74RKGZVEbFga4OXN10P2Y | conversation_8e2aVKQY7Nmf75EqRvWZGlJy | 2026-04-27 09:22:35 | 2026-06-23 09:46:15 | 57.02 | 58 |
| Employee prefix id | Name | Team | Resolved handled pairs | QA-eligible candidate pairs | Pairs in this bucket | Example conversation URLs |
|---|---|---|---|---|---|---|
employee_4qdo1VQzZyrbTDpWAX8kyN5L | Kristina Cebotarev | PS BL DE (Filip) | 15 | 8 | 5 | conversation_ZjK27yWRMgJSWMpmXPzbmdka , conversation_wp24ZDMYL73ia1LGRl9xg6jk , conversation_egDP1O6YWzwhJGG3RMN4kjKW |
employee_g5j74RKGZVEbFga4OXN10P2Y | Sandra Kukoljac | AM BL DE (Dimitrije) | 3 | 2 | 2 | conversation_8e2aVKQY7Nmf75EqRvWZGlJy , conversation_57oV61vXv5NfMMNMY4lKkE2r |
employee_DpVW8no3AJnyCRveAqRQMyv5 | Eya A. | ECT FL FR | 1 | 1 | 1 | conversation_bwLn1Z8Rn28tE59MRQozA27e |
Not sampled
This employee had eligible candidate conversations, but the primary reason was sampling-rule gating rather than eligibility.
| Employee prefix id | Name | Team | Resolved handled pairs | QA-eligible candidate pairs | Pairs in this bucket | Example conversation URLs |
|---|---|---|---|---|---|---|
employee_MYbKEVJWlnP2izrNZL0Nvea3 | Costas A. | PS FL FR (Gabrielle) | 10 | 8 | 5 | conversation_QqLdbxaR8r0t6nZnXV8y42K6 , conversation_noWeAqvRPgWSmPObBLlQxGPz , conversation_pmQMAW2Y19zteAggYG5ne3Zj |
Call tickets missing source channel
Costas A.’s not-sampled tickets exposed a broader call-channel issue. The five affected tickets were call conversations, but their source channel was blank. Qonto’s call coverage rule looks for source channel call, so these tickets did not match the call rule even though they were calls.
This is a widespread issue for Qonto and it is still occurring. The weekly counts below use conversations with a call channel type; checking for at least one actual call part produced the same missing-source counts.
| Week starting | Call tickets | Blank/unknown source channel | Share blank/unknown | Notes |
|---|---|---|---|---|
| 2026-06-29 | 899 | 95 | 10.6% | Partial week through July 1; 42 were created on July 1. |
| 2026-06-22 | 3,766 | 1,451 | 38.5% | Same week as this coverage investigation. |
| 2026-06-15 | 7,324 | 5,825 | 79.5% | Peak observed week. |
| 2026-06-08 | 10,804 | 5,060 | 46.8% | First large spike. |
| 2026-06-01 | 11,740 | 128 | 1.1% | Baseline before the spike. |
| 2026-05-25 | 9,552 | 109 | 1.1% | Baseline before the spike. |
The affected value is blank, not the literal value unknown: the production check found zero source_channel = unknown rows in these weekly buckets.
Request completed, but not as an active completed eval for this agent
This employee had one eligible candidate where the evaluation request completed, but it did not result in an active completed AI agent evaluation for this specific subject employee in the report window.
| Employee prefix id | Name | Team | Resolved handled pairs | QA-eligible candidate pairs | Pairs in this bucket | Example conversation URLs |
|---|---|---|---|---|---|---|
employee_DpVW8no3AJnyCNoBAqRQMyv5 | Ana Andric | AM BL DE (Vojislav) | 12 | 1 | 1 | conversation_KvqxdzbRJveCOQQdRpyeoZaO |
Partial coverage: chat/email under target
After the 79 zero-evaluation agents, the next major coverage issue is partial coverage: agents who received some AI evaluations but still missed one or both weekly targets.
The original 2026-07-01 CSV showed 178 agents missing the chat/email target with a 647-evaluation gap. A direct production rerun on 2026-07-02 shows 177 agents and a 645-evaluation gap, so one agent appears to have gained two chat/email evaluations since the export.
For the week starting 2026-06-22, using the current production rerun:
| Metric | Agents / evaluations |
|---|---|
| Active/evaluable teamed agents | 380 |
| Agents with zero AI evaluations | 79 |
| Agents with some evaluations but not both targets | 295 |
| Agents meeting both targets | 6 |
| Agents missing the chat/email target | 177 |
| Missing chat/email evaluations vs 5/week target | 645 |
The chat/email gap is smaller than the call gap, but still material. Of the 177 agents who missed the chat/email target:
| Chat/email outcome | Agents | Missing evaluations |
|---|---|---|
| Zero chat/email evaluations | 82 | 410 |
| 1-4 chat/email evaluations | 95 | 235 |
Those 177 agents had 2,523 resolved QA-eligible chat/email candidate pairs across 125 agents. 52 of the 177 under-target agents had no resolved QA-eligible chat/email candidate pairs in the week. 97 had at least five such candidate pairs but still missed the 5/week chat/email target.
Exact blocker breakdown for the unresolved chat/email target gap:
| Blocker | Raw candidate pairs | Agents | Target-capped impact |
|---|---|---|---|
| AI/freeform ineligible | 1,228 | 114 | 243 |
| Linked tickets still open | 559 | 101 | 191 |
| No customer response | 179 | 51 | 79 |
| No agents sampled | 89 | 22 | 26 |
| Ticket reopened / request cancelled | 73 | 41 | 46 |
| Outside evaluation window | 60 | 36 | 49 |
| Completed inactive for this agent | 54 | 30 | 38 |
| Request completed, but not active for this agent | 12 | 10 | 10 |
| No eligible agents found at request time | 9 | 8 | 9 |
| Same agent completed outside this effective week or inactive window | 6 | 6 | 6 |
| No agent response | 5 | 4 | 4 |
| No matching scorecard | 5 | 5 | 5 |
| Request failed | 4 | 4 | 4 |
| Not sampled | 3 | 2 | 3 |
| Conversation completed for another agent | 1 | 1 | 1 |
Target-capped impact means the row is capped by each agent’s remaining chat/email target gap. For example, if an agent needed two more evaluations and had ten blocked tickets in the row, the impact is counted as two. These rows are not additive across recommendations because the same agent’s remaining gap can be filled by more than one blocker category.
AI/freeform policy themes within the 1,228 AI/freeform-blocked candidate pairs:
| AI/freeform theme | Raw candidate pairs | Agents | Target-capped impact |
|---|---|---|---|
| Single-agent / multiple-agent rule | 841 | 98 | 200 |
| No meaningful two-way exchange | 232 | 69 | 98 |
| Outbound-call exclusion | 57 | 36 | 43 |
| Verification/authentication/identity exclusion | 36 | 25 | 27 |
| Explicit tag exclusion | 5 | 4 | 5 |
| Other AI/freeform reason | 57 | 35 | 38 |