Voice Agent Conditional Tools
Overview
Conditional Tools for voice agents work similarly to text agent conditional tools, but execute during phone calls in real-time. When the AI detects certain conditions during a conversation (like a caller requesting emergency service or asking about pricing), it automatically triggers configured actions.
Key Difference from Text Agents:
Voice agents are more "aware" when they use these tools. They are still "fire-and-forget" type tools (the agent is not looking for information to use in the conversation after it executes the tool), but the differences between text and voice conversation speeds impact how we orchestrate tool usage. Agents will still generally not mention using these tools, but can without your instruction. If someone says "I want a discount code" and you have a conditional tool with a trigger condition of "the user requests discount code", your agent will likely mention "I sent you the discount code" when it executes the tool.
That said, if there are conditional tools the agent should never mention using, you can explicitly instruct it not to.
How Voice Conditional Tools Work
- Voice agent converses with caller
- AI monitors conversation for trigger conditions
- When condition matched, tool triggers during the call
- Actions execute immediately
- Call continues seamlessly
Real-Time Execution:
- Notifications sent while call is active
- Team can be alerted instantly
- Webhooks fire during conversation
- Journey changes happen immediately
Available Action Types
Voice agents support 7 action types:
1. Internal Notification
Send in-app notification to team members.
Configuration:
- Recipient Mode: Assigned User, Specific Users, or Both
- Specific Recipients: Select team members
- Title: Notification subject
- Message: Notification content
- Click Action: Navigate to Contact or Conversation
Use For:
- Alerting team about call content
- High-priority caller notifications
- Request tracking
2. Email Notification
Send email to team members.
Configuration:
- Recipient Mode: Assigned User, Specific Users, or Both
- Specific Recipients: Select team members
- Subject Line: Email subject
- Email Body: Email content
- Button Action: View Contact or View Conversation
Use For:
- Team members who don't use the brayv.ai lightning platform actively
- Email record of important events
3. Internal SMS
Send text message to team members' phones.
Configuration:
- Recipient Mode: Assigned User, Specific Users, or Both
- Specific Recipients: Select team members
- Message: SMS content (keep under 160 characters - recommended, not a hard limit)
Use For:
- Urgent call alerts
- Emergency requests
- Time-critical notifications
4. End Journey
Mark contact's opportunity as ended.
Configuration:
- No additional configuration
What It Does:
- Marks opportunity "ended"
- Cancels follow-ups
- Removes journey text agent from contact
- Contact can start new journey anytime
- Global default text agent can still respond to texts
Use For:
- Agents that could be interacting with leads in your Journey
- If they say they don't want what you're offering, voice agent can end the journey so you don't follow up with them and annoy them.
5. Send Webhook
Send HTTP POST request to external URL.
Configuration:
- Webhook URL: Full URL to send to
- Timeout: Seconds to wait for response (1-30)
- Include Custom Fields: Toggle to include custom field data
Payload Sent: Example:
{
"contact": {
"id": "843b8486-c86d-4f0b-911d-ad4d29877926",
"first_name": "Valerie",
"last_name": "Johnson",
"full_name": "Valerie Johnson",
"email": null,
"phone": "+1112223333",
"additional_phones": [],
"additional_emails": [],
"business_name": null,
"website": null,
"birthday": null,
"street_address": null,
"city": null,
"state": null,
"zip_code": null,
"country": null,
"timezone": null,
"source": "google",
"utm_source": null,
"utm_medium": null,
"utm_campaign": null,
"utm_content": null,
"utm_keyword": null,
"friendly_source": "our website",
"hook": "our services",
"referrer": null,
"facebook_click_id": null,
"google_click_id": null,
"facebook_lead_id": null,
"campaign_id": null,
"dnd_sms": false,
"dnd_calls": false,
"dnd_email": false,
"text_incapable": false,
"carrier_level_dnd_text": false,
"has_text_ai": true,
"has_voice_ai": false,
"assigned_text_agent_id": null,
"default_inbound_voice_agent_id": null,
"default_outbound_voice_agent_id": null,
"assigned_calendar": null,
"is_internal_staff": false,
"servicetitan_customer_id": null,
"servicetitan_location_id": null,
"housecall_pro_customer_id": null,
"housecall_pro_address_id": null,
"service_description": null,
"tags": [],
"is_active": true,
"owner_id": null,
"linked_user_id": null,
"created_at": "2026-02-06T07:25:10.775645+00:00",
"updated_at": "2026-02-07T06:05:56.504116+00:00",
"custom_fields": {
"service_fee_info": "thanks" // plus any more custom fields
}
},
"trigger_context": {
"agent_id": "28a16566-b55c-45c4-b9df-7fc9ffb2c826",
"tool_id": "",
"action_id": "",
"trigger_reason": "User explicitly requested a resource packet before consultation appointment",
"timestamp": "2026-02-07T06:09:57.328796+00:00"
}
}
standard fields will always be included in the payload. Custom fields will only be included if the particular contact in the interaction has a value in a particular custom field. Custom fields without values for the particular contact are excluded from the payload. trigger_context.trigger_reason will be filled with the AI's explanation for why it used the tool.
Use For:
- External system integration
- Zapier/Make automation
- Custom business logic
- Third-party notifications
6. Enroll in Email Campaign
Add contact to an email marketing campaign.
Configuration:
- Campaign: Select from active email campaigns
What It Does:
- Enrolls contact in selected email campaign
- Email sequence begins automatically
- Follows campaign time timing and step rules
Use For:
- Follow-up email after call
- Sending a specific email when a contact wants information on a certain topic
- Nurture campaigns, etc.
Note: This action is unique to voice agents (not currently available for text agents).
7. Send SMS to Contact
Send text message to contact after call ends.
Configuration:
- Message Template: SMS content
- Can use variables
Use For:
- Sending links caller requested
- Confirming information discussed
- Follow-up after call
Example: Caller asks for website link:
- Tool triggers: "caller asks for website or more information online"
- Action: Send SMS to Contact: "Hi {contact.first_name}! Here's our website: www.example.com. Thanks for calling!"
Actions NOT Available for Voice Agents
The following text agent actions are NOT available for voice:
- Turn Off Text AI - (end journey action will end AI text followups if needed)
- Mark Contact DND for SMS - (contact is not texting with you at the moment, they can always text in STOP to unsubscribe)
- Add to Journey - (contact is either in a Journey already, or you can achieve the Journey goal during the call, e.g. booking an appointment which would automatically place them in the correct spot in the Journey. Use transfers to transfer to a different agent if you need a handoff for a different goal.)
- Zip Code Territory Check - (coming soon)
Creating Conditional Tools
Using AI Editor Assistant (Ava)
Step 1: Click "Edit with AI" in the voice agent editor
Step 2: Describe what you want
Example Requests:
- "Send me an email when a caller asks about pricing"
- "If someone calls about an emergency, send SMS to the Joe Smith"
- "When caller requests a callback, notify the assigned user"
Step 3: Review Ava's configuration
Step 4: Click "Apply"
Step 5: Save the agent
Manual Creation
Step 1: In Actions tab, click "Add Tool"
Step 2: Configure:
- Name: Internal reference
- Condition: When to trigger (plain English)
- Actions: What to do (add one or more)
Step 3: Save the agent
Example Voice Conditional Tools
Example 1: Emergency Service Alert
Name: "Emergency Request"
Condition: "user indicates they have an emergency or urgent situation"
Actions:
- Internal SMS
- Recipients: On-call Technician
- Message: "šØ EMERGENCY: {contact.full_name} calling. Phone: {contact.phone}. Reason: {trigger.reason}"
Example 2: Pricing Inquiry
Name: "Pricing Question"
Condition: "user asks about pricing or cost for services"
Actions:
- Email Notification
- Recipients: Joe Smith, Mary Worth
- Subject: "Pricing inquiry from {contact.full_name}"
- Body: "Call received about pricing.\n\nCaller: {contact.full_name}\nPhone: {contact.phone}\n\nDetails: {trigger.reason}"
Example 3: Callback Request
Name: "Callback Requested"
Condition: "user requests a callback or asks to speak with someone specific"
Actions:
-
Internal Notification
- Recipients: Contact Owner (assigned user, contact owner are synonymous)
- Title: "Callback requested - {contact.full_name}"
- Message: "{trigger.reason}\n\nPhone: {contact.phone}"
-
Send SMS to Contact
- Message: "Thanks for calling {account.name}! Someone from our team will call you back shortly."
Example 4: Service-Specific Routing
Name: "Commercial Services Request"
Condition: "user mentions commercial, business, or industrial services"
Actions:
-
Email Notification
- Recipients: Commercial Team
- Subject: "Commercial lead: {contact.full_name}"
- Body: "Commercial service call received\n\n{trigger.reason}"
-
Enroll in Email Campaign
- Campaign: "Commercial Services Follow-Up"
Best Practices
Keep Conditions Specific
Good: ā "user indicates they have an emergency or urgent need requiring same-day service"
Too Vague: ā "emergency"
Use Real-Time Notifications
Take advantage of during-call execution:
- Alert team while caller is on the line
- Enable quick response
- Improve customer experience
Test Thoroughly
Voice is different from text:
- Make actual test calls
- Verify tools trigger appropriately
- Check notifications arrive
- Test edge cases
Monitoring Conditional Tools
Voice Agent Logs
Access: AI Agents page > Voice Logs tab
What You See:
- Which tools triggered during calls
- AI's reasoning
- Actions executed
- Call transcripts
- Success/failure of actions
Use For:
- Verifying tool accuracy
- Understanding AI decisions
- Optimizing trigger conditions
- Debugging issues
Troubleshooting
Problem: Tool not triggering during calls
Solution:
- Make trigger condition more specific or less restrictive
- Review voice logs to see AI's reasoning
- Test with voice agent
- Verify tool is enabled
- (Legacy accounts) Try changing the model and lowering the temperature
Voice Agents 3.0: Model and temperature aren't adjustable in v3. If a tool isn't triggering, focus on the trigger condition wording - make it clearer and more specific - and review the call's reasoning in the voice logs.
Problem: Notifications not being received
Solution:
- Check recipients are selected
- Verify team members have valid email/phone numbers
- Check spam folder for emails
- Ensure notification channels configured
Problem: Wrong actions executing
Solution:
- Review trigger condition wording
- Check for overlapping tool conditions
- Test specific scenarios
- Adjust trigger specificity
Problem: Webhook calls failing
Solution:
- Verify webhook URL is accessible
- Check timeout settings
- Test webhook independently
- Review error logs
Related Features
- AI Voice Agents Overview - Main voice agent guide
- Voice Field Extractors - Save call data to contacts
- Conditional Tools - Similar functionality for text agents