How it works
When an ElevenLabs agent invokes a KYC tool, it follows a three-step pattern:- Call the tool with
action: get_requirementsto discover which fields are required. - Collect the required information through conversation.
- Call the tool with
action: verify_individualoraction: verify_businesswith all collected fields.
KycVerification record, calculates a risk score based on the configured weights, and returns a verification_status of approved, pending_review, rejected, or incomplete.
KYC types
Individual KYC
Verifies personal identity. Collects name, date of birth, nationality, country of residence, government ID type and number, address, email, phone, occupation, and source of funds.
Business KYB
Know Your Business verification. Collects business name, registration number, tax ID, business type, incorporation details, business address, authorized representative, and beneficial owners.
Creating a KYC tool
Name and type
Enter a name and optional description. Choose Individual KYC or Business KYB as the verification type.
Configure required fields
The form pre-fills with the default fields for the chosen type. For each field you can set whether it is required.Default individual fields:
Default business fields:
| Field | Required by default |
|---|---|
| Full name | Yes |
| Date of birth | Yes |
| ID type | Yes |
| ID number | Yes |
| Nationality | No |
| Country of residence | No |
| Address (street, city, state, postal code, country) | No |
| No | |
| Phone | No |
| Occupation | No |
| Source of funds | No |
| Field | Required by default |
|---|---|
| Business name | Yes |
| Registration number | Yes |
| Tax ID | Yes |
| Business type | Yes |
| Incorporation country | Yes |
| Representative name | Yes |
| Incorporation date | No |
| Business address | No |
| Representative title / contact | No |
| Beneficial owners | No |
Configure validation rules
Validation rules are regex patterns applied to each field value before the risk score is computed. The defaults enforce common formats:
| Field | Default pattern | Notes |
|---|---|---|
full_name | ^[a-zA-Z\s\'-]{2,100}$ | Letters, spaces, hyphens |
date_of_birth | ^\d{4}-\d{2}-\d{2}$ | ISO 8601 date |
email | Standard email format | |
phone | ^\+?[\d\s\-\(\)]{7,20}$ | Optional country code |
nationality / country_of_residence | ^[A-Z]{2}$ | ISO alpha-2 code |
Configure risk settings
Risk settings control how the verification score is computed and how outcomes are decided:
| Setting | Default | Description |
|---|---|---|
| Missing field weight | 10 | Score added per missing required field |
| Format failure weight | 15 | Score added per field that fails its regex |
| Age verification weight | 25 | Score added if the subject is under the minimum age |
| Geographic risk weight | 20 | Score added for high-risk countries |
| PEP/sanctions weight | 30 | Score added if a PEP/sanctions check is triggered |
| Duplicate check weight | 20 | Score added for a duplicate submission |
| Minimum age | 18 | Minimum acceptable age |
| Auto-approve threshold | 30 | Risk scores at or below this value are auto-approved |
| Review threshold | 60 | Scores above this value are rejected; scores between approve and review thresholds go to pending_review |
| High-risk countries | [] | ISO country codes that increase the geographic risk score |
| PEP check | false | Enable Politically Exposed Person check |
| Duplicate check | true | Reject or flag duplicate submissions |
Registering with ElevenLabs
Click Register
Click Register with ElevenLabs. Sniko calls The
POST /convai/tools with the tool configuration:enum values differ for business tools: verify_business, check_status, get_requirements.PUT /convai/tools/{elevenlabs_tool_id}.
Assigning to agents
The KYC tool must be registered before it can be assigned to agents.Admins can view all KYC tools across all users. Regular users can only see and manage their own tools.
Webhook endpoint
ElevenLabs posts to the KYC tool webhook when the agent invokes it:get_requirements request:
Verification results
Each agent invocation of a KYC tool creates aKycVerification record. View verifications from the tool detail page.
KycVerification fields
| Field | Type | Description |
|---|---|---|
kyc_tool_id | integer | The KYC tool that processed this verification |
user_id | integer | The account owner of the tool |
tool_call_id | string | ElevenLabs tool call ID for the invocation |
agent_id | string | ElevenLabs agent ID that invoked the tool |
conversation_id | string | ElevenLabs conversation ID |
verification_type | string | individual or business |
collected_data | JSON | The field values submitted by the agent |
field_results | JSON | Per-field validation outcomes |
risk_score | decimal | Computed numeric risk score |
risk_level | string | low, medium, high, or critical |
risk_factors | JSON | List of factors that contributed to the score |
flags | JSON | Array of flag strings raised during verification |
verification_status | string | approved, pending_review, rejected, or incomplete |
reviewed_by | integer | User ID of the reviewer (if manually reviewed) |
review_notes | string | Notes added during manual review |
reviewed_at | datetime | When the manual review was completed |
audit_trail | JSON | Full audit log of actions taken on this verification |
metadata | JSON | Additional metadata from the conversation |
verification_started_at | datetime | When the agent first invoked the tool |
verification_completed_at | datetime | When the final verification decision was made |
Risk levels
| Level | Meaning |
|---|---|
low | Risk score ≤ auto-approve threshold — automatically approved |
medium | Score between thresholds — routed to pending_review |
high | Score above review threshold — rejected |
critical | Highest risk — rejected and flagged |
Analytics
The tool detail page shows:- Total verifications, approval rate, and average risk score
- Pending review count
- Risk distribution (low / medium / high / critical)
- Verification status distribution (approved / pending_review / rejected / incomplete)
- Per-field completion rates (for the last 100 processed verifications)
- Daily verification trend for the last 30 days with approved/rejected breakdown
- Top 10 most frequently raised flags