AI Procedures (AIPs) define how Cevro should handle specific types of player requests—checking withdrawal status, explaining bonus terms, processing account changes, and more.
Not every conversation needs an AIP. Cevro can handle many requests using just your Knowledge Base, general escalation rules, or responsible gaming protocols. AIPs are for when you need a specific procedure—clarifying questions in a particular order, evaluating conditions, interpreting backoffice data, or branching based on outcomes.
Creating an AIP
Navigate to Workspaces → AIPs → Create New to open the AIP editor.
Core Fields
| Field | Purpose |
|---|
| Name | How the AIP appears in your list (e.g., “Withdrawal Status”) |
| Description | Tells Cevro when this AIP applies (e.g., “Assist players inquiring about the status of their withdrawal”) |
| Instructions | Step-by-step guidance for handling the request |
| Example Utterances | 3 sample phrases that would trigger this AIP |
| Category | Groups AIPs for organization |
| Tags | Labels applied to conversations when this AIP matches |
Group by Theme, Not by SymptomInstead of one broad “Deposit Issues” AIP (too vague) or hyper-specific ones for every variation, group by theme:
- Deposit Visibility — Player can’t see their deposit (pending, delayed, not showing)
- Payment Method Issues — Player can’t complete a deposit with a specific method
The test: Would the same procedure and backoffice lookups apply? If yes, group them together.
Writing Instructions
Instructions are the heart of an AIP. They tell Cevro exactly how to handle the scenario.
The Mention System
@ Mentions — Type @ in the instructions editor to open a dropdown with three tabs:
| Tab | What It Contains | Purpose |
|---|
| Player Context | Data from your backoffice | Look up player info, balances, transactions |
| Knowledge | Articles from your knowledge base | Reference specific help content |
| Actions | Things that change state | Escalate, route, close, add tags |
# Mentions — Type # to mention a human specialist for HITL requests. This is only visible if HITL is enabled for your workspace.
Example instruction using mentions:
Check @withdrawalStatus for pending withdrawals.
If found:
- Share the status and expected timeframe
- Reassure the player it's processing
If delayed beyond 7 days:
- @Transfer to Live Agent
If player disputes the status:
- #Payments Team: Player claims withdrawal was submitted but not showing. Please verify.
Best Practices
Be direct and sequential
Check @playerBalance for available funds.
If sufficient:
- Confirm withdrawal is possible
- Explain processing time
If insufficient:
- Explain the shortfall
- Suggest deposit options
Include decision branches
If player provides a transaction ID:
- Look up that specific transaction
- Provide detailed status
If no transaction ID:
- List recent withdrawals from @recentTransactions
- Ask which one they mean
Define escalation criteria
Escalate if:
- Issue is unresolved after checking all relevant data
- Player reports a discrepancy between their records and ours
- Request requires manual override
Behavior Settings
Below the instructions editor, you’ll find tabs for configuring AIP behavior.
Player Auth Tab
Toggle Require Player Authentication to verify the player’s identity before proceeding.
This toggle auto-enables when your instructions reference Player Context that requires authentication. You can’t disable it in that case.
Smart Delegation Tab
Controls how Cevro handles escalation for this AIP:
| Option | Behavior |
|---|
| Default | Cevro decides when to escalate based on the conversation |
| Escalate to Human | Immediately routes to a human agent |
| Do Not Escalate | Cevro handles fully, never escalates |
See Do Not Escalate for details on containment.
Referencing Knowledge Base Articles
When you type @ and select the Knowledge tab, you can reference specific Knowledge Base articles in your instructions. This is useful when:
- Procedures need reference data — A “Payment Method Issues” AIP might reference an “Accepted Payment Methods” article so the AI can look up which methods work and explain rejections
- Storing brand-specific info — Knowledge Base articles are segmented by brand, so you can store brand-specific details and reference them
Multi-brand awareness: The Knowledge tab shows which brands have each article using fuzzy matching (so “Accepted Payment Methods” and “Payment Methods Accepted” are grouped). You’ll see something like “10 brands have this, 2 brands missing”—helping you identify content gaps to fill.
Draft, Published, and Active States
AIPs have two dimensions of state:
Draft vs Published
| State | Used in Production | Editable |
|---|
| Draft | No | Yes |
| Published | Yes (if active) | No (read-only) |
New AIPs start in Draft. Click Publish when ready to go live.
Active vs Inactive
Published AIPs can also be toggled Active or Inactive:
- Active — Used in live conversations
- Inactive — Exists but won’t trigger
This is useful for:
- Temporarily disabling an AIP without deleting it
- Gradual rollouts (start inactive, activate when ready)
- Brand-scoped behavior (see below)
Brand-Scoped Patterns
Combined with brand variants, active/inactive enables powerful patterns:
- Default inactive + one brand active: AIP only applies to that specific brand
- Default active + one brand inactive: AIP applies everywhere except that brand
Available Actions
When you type @ and select the Actions tab, you’ll see:
| Action | What It Does |
|---|
| Transfer to Live Agent | Escalates to a human agent |
| Route to AI Procedure | Switches to a different AIP mid-conversation |
| Close Ticket | Ends the conversation |
| Add Tags | Applies labels to the conversation |
| Send External Message | Sends a message to an external channel |
Some workspaces have additional actions configured (like Assign Bonus, Reset Password, etc.) based on their backoffice integration.
Brand Variants
For multi-brand workspaces, you can create brand-specific variations of an AIP:
- Base AIP — Default behavior for all brands
- Brand Variant — Overrides for a specific brand (different instructions, Player Context, etc.)
This lets you maintain one AIP structure while customizing responses per brand.
See Brand Variants for details.
Example AIPs
With Player Context
Name: Withdrawal Status
Description: Assist players inquiring about the status of their withdrawal
Instructions: |
Check @withdrawalStatus.
Look for withdrawals where status is "pending" or "processing".
If found:
- Share the withdrawal amount and request date
- Explain: pending = submitted, processing = being reviewed
- Provide expected timeframe (24-48 hours for pending, 1-3 days for processing)
If status is "failed" or "rejected":
- Explain the reason from the failureReason field
- Guide them on next steps
Authenticate: Yes
With Procedure (No Player Context)
Name: Bonus Terms
Description: Assist players asking about bonus terms or wagering requirements
Instructions: |
Ask which bonus or promotion the player is asking about.
Reference the Knowledge Base for relevant terms.
Explain:
- Wagering requirements
- Eligible games
- Expiration dates
If player disputes terms or claims terms are different than stated, escalate.
Authenticate: No
When you enable Escalate to Human, the instructions field is hidden—there’s nothing for the AI to do except route immediately.
Name: Account Closure
Description: Assist players requesting to permanently close their account
Smart Delegation: Escalate to Human
Troubleshooting
| Issue | Check |
|---|
| AIP not triggering | Is the description clear? Are example utterances accurate? Is it published (not draft)? |
| Wrong AIP matched | Is there overlap with another AIP’s description? |
| Player Context not working | Is authentication enabled? Is the backoffice integration configured? |
| Not escalating when expected | Check Smart Delegation settings. Review escalation criteria in instructions. |