Verify banking KYC through AI chat
Workflow purpose
This guide demonstrates how to use Proto's platform to run a know-your-customer (KYC) check entirely through AI chat, combining an ID upload with a verification service call. This is the shared verification building block referenced by "Open bank accounts through AI chat" and similar flows, documented here on its own so it can be reused anywhere a KYC check is needed.
Who can benefit from this guide:
- Banks and e-wallet providers with a recurring KYC requirement
- Compliance teams needing a consistent, logged verification step
- Products that need to re-verify an existing customer periodically
- Any workflow that currently sends customers to a branch just to show ID
Verify banking KYC
This workflow combines an ID photo with a verification service call to confirm identity before a customer proceeds. See how to verify banking KYC through AI chat.
1. Create a trigger
Purpose: Start the flow wherever a KYC check is required before continuing.
- Navigate to the Actions tab in the AI agent settings.
- Click “+ Add Trigger” and select the Message Received trigger type, or insert this as a step inside another flow.
- Name the trigger “KYC verification”.
2. Survey – ID type and number
Purpose: Know what kind of document to expect before it’s uploaded.
- Add a Survey action titled
ID details. - Field
id_type– Quick replies: National ID, Passport, Driver’s licence. - Field
id_number– Text – What’s the number on your ID?
3. Survey – ID photo upload
Purpose: Collect the document itself for extraction and verification.
- Add a Survey action titled
ID photo. - Field
id_photo– Attachment(s) – Please upload a clear photo of your ID. – Required: On.
4. LLM action – extract ID data
Purpose: Read the ID rather than relying only on what the customer typed.
- Add an LLM action named
ID data extraction. Model: GPT-4o. Input:{id_photo}. Output variable:id_data. - Success branch: first action is Set chat variable –
id_data = _.json_parse(id_data).
5. Send API request – KYC verification
Purpose: Confirm the ID against an authoritative source rather than trusting the upload alone.
- Add a Send API request action to your KYC verification service with
{id_type},{id_number}, and{id_data}. Map the response toverification_result.
6. Branch on the result
Purpose: Confirm a match automatically, and route anything uncertain to a person.
- Add a Branch action. Condition:
verification_result["match"] == true. - If true: Send message – “Your identity has been verified.”
- If false: AI Agent Network handoff to the compliance team’s AI agent, passing
{id_type},{id_number}, and{verification_result}.
7. Test the flow
Purpose: Confirm the verification is reliable before it gates anything downstream.
- Test with a genuine ID and confirm it verifies successfully.
- Test with a mismatched ID number and photo, and confirm the flow escalates rather than passing the check.
- Test with a blurry photo and confirm the extraction step returns
nullfields rather than a false match.