Back to Help Home
Last updated: 2025-10-05Location: AI Agents > [Agent] > Actions Tab

Conditional Tools (Actions)

Overview

Conditional Tools allow AI agents to automatically trigger actions based on what's happening in the conversation. When the AI detects certain conditions (like a contact requesting a callback, saying they're not interested, or asking about a specific service), it can automatically execute one or more actions.

Conditional Tools are the key to making your AI agents useful for you beyond the actual conversation - they can notify your team, add contacts to journeys, end journeys, check service territories, and much more.

Important these are 'fire and forget' type tools by default. The AI doesn't see what is happening beyond executing the tool and "forgets" it used the tool right after it used it. If you want the AI to mention it in the conversation (most of the time unnecessary), add a message to the Tool Response field in the conditional tool. This "reminds" the agent that it just executed this tool and what it accomplished allowing it to mention it in the conversation. Optionally add instructions in the Agent's main instructions. (for example, you have a conditional tool with an action to notify team member(s) about a callback request from the contact. Simply add this to the rules section of your agent: "if the user requests a call back, tell them "no problem, I'll alert the team and have someone give you a call as soon as possible" - the AI would execute the configured tool regardless when the trigger condition was met, but now it will also assure the user their request was noted). AI is smart enough to do this by default most of the time, but for this specific instance it is useful to require it for a better customer experience. A lot of conditional tools, you would NOT want the AI to mention using (eg sending an internal notification when a customer has a high budget), so the default state works well for most use cases - agent remains agnostic to what the tools actually do, just executes them, and "forgets" immediately before actually responding.

How Conditional Tools Work

The Process:

  1. AI monitors the conversation with the contact
  2. AI evaluates if the conversation matches any conditional tool's trigger conditions
  3. When a match is found, the tool's actions are executed automatically
  4. Actions run in the order you configure them
  5. Each action can have a delay and failure handling settings

Accessing Conditional Tools

For Global Agents:

  1. Go to AI Agents page
  2. Click on an agent
  3. Go to the "Actions" tab in the AI Agent Editor Modal

For Journey Agents:

  1. Go to Journeys
  2. Open your journey
  3. Click on a stage
  4. Edit the agent
  5. Go to the "Actions" tab

Creating Conditional Tools

Method 1: Quick Add Templates (Recommended for Common Scenarios for Journey Agents at the Starting Line Stage)

Step 1: In the Actions tab, click "Quick Add" button

Step 2: Select from pre-configured templates:

Not Interested

  • Trigger: "the user explicitly indicates they are not interested in the product or services being offered. (Not applicable if the user simply indicates its not a good time to chat)"
  • Actions: End Journey (lost - not interested), Turn Off AI

Stop Contact

  • Trigger: "the user explicitly indicates they wish to no longer be contacted. (Not applicable if the user simply indicates its not a good time to chat)"
  • Actions: End Journey (lost - opted out), Mark Contact DND for SMS, Turn Off AI

Bad Contact Info

  • Trigger: "the user indicates that we have the wrong phone number or they are not the person we think we are reaching out to"
  • Actions: Mark Contact DND for SMS, End Journey (ended), Turn Off AI
  • Use with caution and run test conversations and edit the trigger condition to your liking

Zip Code Check

  • Trigger: "the user provides or confirms their 5 digit zip code in the conversation"
  • Actions: Zip Code Territory Check (you must configure your territory zip codes, and actions you wish to occur when zip code is outside of your defined list)

Step 3: Review and customize the auto-generated tool

Step 4: Save the agent

Method 2: Edit with AI (Ava) - Recommended

Step 1: Click the "Edit with AI" button in the agent editor

Step 2: Tell Ava what you want

Example requests:

  • "Add a tool that sends Joe an email notification when someone requests a callback"
  • "Create a tool that adds contacts to the HVAC Journey when they mention needing HVAC services"
  • "Add a tool that notifies the assigned user when a contact asks about pricing"

Step 3: Review what Ava created

Step 4: Click "Apply" to add to the agent

Step 5: Save the agent

Method 3: Manual Creation

Step 1: Click "Add Tool" button

Step 2: Configure the tool (see sections below)

Step 3: Save the agent

Configuring a Conditional Tool

Every conditional tool has these components:

Tool Name (Required)

  • Internal reference name
  • Not shown to AI
  • Example: "Callback Request Alert", "HVAC Interest Handler", "Not Interested Cleanup"

Trigger Condition (Required)

Plain English description of when the tool should activate (this is what the AI sees and evaluates).

Be Specific:

  • ✅ "the user indicates they need HVAC repair or replacement services"
  • ✅ "the user asks for a callback from a team member"
  • ✅ "the user mentions an emergency or urgent situation"
  • ❌ "HVAC" (too vague)
  • ❌ "callback" (too simple)

Important Distinctions:

  • "not interested" ≠ "not a good time to chat" (user might chat later)
  • "wants to stop contact" ≠ "is busy right now"
  • Be specific about user intent

Testing Tip: Use the agent test feature to verify your trigger conditions work as expected.

Tool Response (optional)

putting anything in this field turns off the default fire-and-forget behaviour of these tools

  • Only use when you want the agent to be aware of and mention an action in the conversation
  • Tool response should effectively tell the AI agent what the tool's actions accomplished
  • Example: "successfully alerted team to call user"
  • For most use cases this is not desired behavior (eg, qualification actions, alerts about certain sales signals, webhooks to external integrations, etc would likely not be things you'd want your agent mentioning in the conversation)

Enable/Disable Toggle

  • Turn the tool on or off without deleting it
  • Useful for temporarily disabling tools
  • Disabled tools don't trigger

Rate Limit (Minutes)

  • Minimum minutes between triggering for the same contact
  • Default: 15 minutes
  • Set to 0 for no limit

Why Use Rate Limits: Prevents duplicate actions when contact mentions the same thing multiple times in one conversation.

Example: Contact says: "I'd like a callback please" Tool triggers, sends notification. Contact says: "Yes, please call me back" Without rate limit: Sends another notification (annoying) With 15-minute rate limit: Doesn't trigger again (smart)

Recommended Rate Limits:

  • Notifications: 15-60 minutes
  • Journey changes: 0 minutes (should only happen once anyway)

Actions (Required - At Least One)

Each conditional tool must have at least one action. You can add multiple actions that execute in sequence.

Available Action Types

1. Internal Notification

Send in-app notifications to team members.

Configuration:

Recipient Mode:

  • Assigned User - Send to contact owner
  • Specific Users - Send to selected team members
  • Both - Send to contact owner AND specific users

Specific Recipients:

  • Select team members from dropdown
  • Can select multiple users
  • Required if recipient mode is "Specific Users" or "Both"

Title Template (Required):

  • Subject line of the notification
  • Example: "🔥 Hot lead: {contact.full_name}"
  • Example: "Callback request from {contact.full_name}"

Content Template (Required):

  • Body of the notification
  • Example: "{contact.full_name} Alert. AI Reasoning: "{trigger.reason}"\n\nPhone: {contact.phone}"

Priority:

  • Low, Normal, High, Urgent
  • Affects how notification is displayed

Click Action:

  • Navigate to Contact
  • Navigate to Conversation
  • None

Available Variables:

  • {contact.full_name} - Contact's full name
  • {trigger.reason} - Why the tool was triggered (AI's reasoning)

2. Email Notification

Send email notifications to team members.

Configuration:

Same as Internal Notification, plus:

Include Action Button:

  • Toggle to add a button in the email
  • Button can navigate to contact or conversation

Button Text:

  • Customize button text
  • Default: "View Contact"
  • Example: "Call This Lead", "Review Request"

Available Variables:

  • {contact.full_name}
  • {trigger.reason}

Note: Emails are sent to team members' email addresses from their account settings.

3. Internal SMS

Send text message notifications to team members' cell phones.

Configuration:

Recipient Mode:

  • Assigned User (contact owner)
  • Specific Users
  • Both

Specific Recipients:

  • Select team members
  • They must have valid phone numbers in their user profile

Message Template (Required):

  • SMS content to send
  • Keep it concise
  • Example: "Call back request from {contact.full_name}. Phone: {contact.phone}. Notes: {trigger.reason}"

Available Variables:

  • {contact.first_name}
  • {contact.last_name}
  • {contact.full_name}
  • {contact.phone}
  • {trigger.reason}

Use For:

  • Urgent notifications
  • Time-sensitive requests
  • High-priority leads

4. Send SMS to Contact

Send a scripted text message directly to the contact.

Configuration:

Message Template (Required):

  • The message to send to the contact
  • Example: "Hi {contact.first_name}, thank you for your interest!"

Available Variables:

  • {contact.first_name}
  • {contact.full_name}
  • {contact.phone}
  • {contact.zip_code}

Important Warning: ⚠️ Typically only recommended when you're also using the "Turn Off AI" action on this tool.

Why: If AI is still active, it will respond to the contact's next message. Sending a scripted message while AI is active can create confusing conversations.

Good Use Case:

  1. Tool detects contact is out of territory
  2. Action 1: Turn Off AI
  3. Action 2: End Journey
  4. Action 3: Send SMS to Contact: "Thanks for reaching out! Unfortunately, we don't service your area. Best of luck!"

5. Turn Off AI

Immediately disables AI text messaging for the contact.

Configuration:

  • No configuration needed

What It Does:

  • Disables AI Text Agent on contact
  • AI stops responding to contact's messages
  • Follow-up sequences paused
  • Journey can resume seamlessly after you review conversation if you choose to turn the AI back on. Just flip the AI back on, send whatever message is appropriate to the contact, and make sure your tool trigger condition is a better match for your criteria so the AI doesn't just turn itself back off on the next message! (You can check the Agent logs to see the Agent's reasoning - why it used the tool. This will enable you to write a better trigger condition!)

Important: ⚠️ Will not be undone automatically (unless, after the journey is ended, the contact starts a new journey by submitting a form, manually being added by a team member, etc.). AI must be manually re-enabled for the contact.

Use For:

  • Contact not interested (combine with End Journey action for a complete AI shutoff)
  • Contact requests to stop being texted (combine with End Journey action for a complete AI shutoff, and DND for SMS to prevent accidental manual messages to contact)
  • Specific scenarios where you want to escalate to human support

6. Mark Contact DND for SMS

Marks the contact as Do Not Disturb for SMS messages.

Configuration:

  • No configuration needed

What It Does:

  • Enables "Do Not Text" on contact record
  • Prevents ALL SMS messages (AI, manual, automated)
  • Contact won't receive any texts until manually removed

Important: ⚠️ Prevents ALL SMS (including AI, manual, and automated messages). Must be manually removed. This should almost always be combined with End Journey and Turn Off AI actions, so that when you reenable it, the AI doesn't automatically resume.

Use For:

  • Contact explicitly requests no more texts
  • Bad contact info / wrong number
  • Compliance scenarios

7. End Journey

Ends the contact's current journey opportunity.

Configuration:

End Type (Required):

  • Mark as Ended - Journey ends, undefined reason for outcome
  • Mark as Lost - Journey ends, defined reason for outcome

Lost Reason (if marking as Lost):

  • Specify why the opportunity was lost
  • Example: "Not interested", "Bad timing", "Out of service area"

What It Does:

  • Ends the current open journey opportunity
  • Stops follow-up sequences
  • Removes contact from journey stages
  • Updates opportunity status
  • Removes Journey-scoped AI text agent from contact
  • Default global AI text agent can still respond to future messages from contact if this action is not followed up with the Turn Off AI action.

Use For:

  • Contact not interested
  • Out of service area
  • Bad contact information
  • Any reason to stop pursuing this lead

8. Complete Journey

Marks the contact's journey as completed — indicating the journey goal was achieved — without committing to "won" or "lost" status.

Configuration:

  • No configuration needed

What It Does:

  • Marks opportunity as completed (positive outcome)
  • Sets primary goal as reached
  • Removes journey-scoped AI text agent from contact
  • Cancels pending follow-ups
  • Archives conversation history
  • Contact can start a new journey at any time

Use Case: This is for edge-case scenarios where you want to stop the conversation short of the main goal (e.g. the full qualification conversation or booking the appointment) but still indicate a positive outcome. Examples:

  • VIP clients who need special handling outside the normal flow
  • Contacts who already booked through another channel
  • Situations where the AI detects the goal was essentially achieved through an unconventional path

Important: ⚠️ This is NOT a replacement for configuring the completion goal tool or calendar booking in the BOOKING/GOAL tab. The primary way an agent achieves its goal is by executing the complete_conversation_goal tool or booking an appointment. Complete Journey as a conditional tool action is for edge cases that bypass the normal goal flow.

⚠️ Do NOT combine with End Journey on the same conditional tool. They serve different purposes — Complete Journey = positive outcome, End Journey = negative/neutral outcome.

Recommended Combo: When using Complete Journey, strongly consider adding:

  1. Turn Off AI — Prevents global agents from messaging the contact after journey ends (unless you have global agents specifically configured for this purpose — see Global AI Text Agents 101)
  2. Send SMS to Contact — Send a final message about next steps
  3. Internal SMS or Email Notification — Alert appropriate team members

9. Add Tag

Add a tag to the contact record.

Configuration:

Tag (Required):

  • The tag name to add to the contact
  • Examples: "hot_lead", "vip", "callback_requested", "emergency"
  • Use existing tags when possible to avoid duplicates (tag lookup is available in the dropdown)

What It Does:

  • Adds the specified tag to the contact's tag list
  • If the contact already has the tag, no duplicate is created
  • Creates the tag in your account's tag library if it doesn't exist yet

Use For:

  • Categorizing contacts based on conversation signals
  • Marking contacts for follow-up workflows
  • Flagging specific interests or situations
  • Building segments for future campaigns or reporting

Example:

  • Trigger: "the user mentions they are a returning customer"
  • Action: Add Tag → "returning_customer"

10. Send Webhook

Send HTTP POST request to an external webhook URL.

Configuration:

Webhook URL (Required):

Timeout (seconds):

  • How long to wait for response
  • Range: 1-30 seconds
  • Default: 5 seconds

Include Custom Fields:

  • Toggle to include custom field data in payload
  • Enabled by default

Payload Sent:

{
  "contact": {
    "id": "...",
    "first_name": "...",
    "last_name": "...",
    "phone": "...",
    "email": "...",
    "custom_fields": {...}
  },
  "trigger": {
    "tool_name": "...",
    "reason": "...",
    "timestamp": "..."
  }
}

Use For:

  • Integrating with external systems
  • Zapier/Make automation
  • Custom business logic
  • Third-party notifications

11. Add to Journey

Get a contact started in a journey or switch from one journey to another.

Configuration:

Select Journey (Required):

  • Choose which journey to add contact to
  • Dropdown shows all active journeys

Behavior:

  • If switching from one journey to another, open opportunity moves to the new journey
  • If going from Global Agent to Journey, new opportunity is created in specified journey
  • Initial outreach messages are skipped (contact already in conversation)
  • New journey's Starting Line stage agent takes over

Use For:

  • Global agents handing off to journey agents
  • Routing to different service-specific journeys
  • Switching journeys based on expressed interest

Example: Tool on Global Agent:

  • Trigger: "user indicates they need pool installation services"
  • Action: Add to Journey "Pool Installation Leads"

12. Zip Code Territory Check

Check if contact's zip code is in your service territory and take action if it's not.

Configuration:

Territory Zip Codes (Required):

  • Comma-separated list of 5-digit zip codes you service
  • Example: "11706, 11707, 11708, 11709"

Out-of-Territory Actions:

  • Nested actions that execute ONLY if contact is outside your territory
  • Can include any action type
  • Common: End Journey, Turn Off AI, Send SMS to Contact, Send Notification

How It Works:

  1. Checks contact's zip_code field against your list
  2. Updates contact.in_territory field (true/false)
  3. If contact is IN territory: No actions execute, conversation continues
  4. If contact is OUT of territory: Nested actions execute

Example Configuration:

  • Trigger: "user provides or confirms their 5 digit zip code"
  • Territory Zip Codes: "90001, 90002, 90003, 90004"
  • Out-of-Territory Actions:
    1. End Journey (ended)
    2. Turn Off AI
    3. Send SMS to Contact: "Thanks for reaching out! Unfortunately we don't service your area."
    4. Email Notification to a team member: "{contact.full_name} out of territory"

Flexibility: You can also just send yourself a notification and keep AI on:

  • Maybe you still service out-of-territory but with different pricing
  • Or you want to manually review before deciding
  • Up to you!

Multiple Actions on One Tool

Conditional tools can have multiple actions that execute in sequence.

Example: "Not Interested" Tool

Actions in order:

  1. End Journey (ended) - Stops opportunity
  2. Turn Off AI - AI stops responding

Example: "Out of Territory" Tool

Actions in order:

  1. Zip Code Territory Check
    • If out of territory:
      • End Journey (ended)
      • Turn Off AI
      • Send SMS to Contact: "Sorry, we don't service your area"
      • Email Notification: "Out of territory lead"

Action Settings:

Delay (seconds):

  • Wait X seconds before executing this action
  • Default: 0 (immediate - processing time can vary, but no intentional wait)
  • Useful for spacing out notifications

Continue on Failure:

  • If this action fails, should next actions still run?
  • Default: Enabled (recommended)
  • Ensures all actions complete even if one fails

Using Edit with AI (Ava)

The easiest way to create conditional tools is using Ava.

Step 1: Click "Edit with AI" button in agent editor

Step 2: Describe what you want:

Example Requests:

  • "Send me an email when someone asks about commercial HVAC services"
  • "If the contact says they're not interested, end the journey and turn off AI"
  • "Add a tool that adds contacts to the Pool Journey when they mention pools"
  • "Notify Jake Smith via SMS when someone requests emergency service"
  • "Check if the contact's zip code is in our service area (11706, 11707, 11708) and end the journey if they're outside"

Step 3: Review what Ava created:

  • Check trigger conditions are accurate
  • Verify actions are correct
  • Adjust recipient lists, messages, etc.

Step 4: Click "Apply"

Always Review: Ava is very good but always review what she creates before saving - especially:

  • Trigger condition wording
  • Notification recipients
  • Message templates
  • Journey selections

Step 5: Save the agent

Quick Add Templates Explained

Not Interested Template

When to Use:

  • Contact explicitly says they're not interested
  • They decline your offer
  • They're no longer in market

What It Does:

  • Ends journey (opportunity marked "ended")
  • Turns off AI (stops all AI responses)

Trigger Note: Does NOT apply if contact just says "not a good time to chat" - that leaves possibility open for later.

Stop Contact Template

When to Use:

  • Contact explicitly asks to stop being contacted
  • Stronger than just "not interested"

What It Does:

  • Ends journey
  • Marks contact DND for SMS (blocks all texts)
  • Turns off AI

Bad Contact Info Template

When to Use:

  • Wrong number
  • Contact says "I didn't request this"
  • You've reached someone who shouldn't be in your system (e.g. someone submitted a form on your website and put in the wrong number)

What It Does:

  • Marks DND for SMS (stops texts immediately)
  • Ends journey
  • Turns off AI

Zip Code Check Template

When to Use:

  • Service-based businesses with territory limits
  • Want to automatically screen leads by location

What It Does:

  • Checks zip code against your list
  • If out of territory, executes nested actions (you configure)
  • Updates contact.in_territory field

Important: You MUST configure your territory zip codes after adding this template.

Best Practices

Start with Quick Add or Ava

Don't manually configure everything:

  • Use Quick Add for common scenarios
  • Use Ava for custom scenarios
  • Saves time and reduces errors

Always Include These for Journey Start Agents

Essential Tools:

  1. Not Interested - Clean up when leads aren't viable
  2. Stop Contact or Bad Contact Info - Handle opt-outs and wrong numbers

Recommended: 3. Territory Check - If you have service area limits 4. Notification for specific requests - Callback, emergency, specific services

Use Rate Limits on Notifications

Problem Without Rate Limit: Contact: "I need a callback" Tool triggers → Sends notification AI: "no problem, I'll alert the team to give you a call" Contact: "Yes, please call me" Tool triggers again → Sends duplicate notification You: Get annoyed by duplicate notifications

Solution: Set rate limit to 15-60 minutes on notification actions.

Be Specific with Trigger Conditions

Vague (may trigger incorrectly):

  • "pool"
  • "callback"
  • "interested"

Specific (triggers accurately):

  • "the user indicates they are interested in pool installation, repair, or maintenance services"
  • "the user requests a callback from a team member or asks to speak with someone"
  • "the user explicitly says they are interested or wants to move forward"

Order Actions Logically

Good Order:

  1. End Journey (stop opportunity first)
  2. Turn Off AI (stop AI responses)
  3. Send SMS to Contact (final message explaining why)
  4. Send Notification (let team know what happened)

Why This Order:

  • End journey first (stops follow-ups)
  • Turn off AI second (stops AI from responding again - first response will still make it back to the contact as this is happening in tandem with the AI's conversational response)
  • Send final message third (gives contact closure)
  • Notify team last (they see complete picture)

Test Your Tools

Use the Test button on agents:

  1. Have a conversation that should trigger the tool
  2. Verify it triggers correctly
  3. Check the reasoning shown in logs
  4. Adjust trigger conditions if needed

Note: In test mode, actions don't actually execute (no real notifications sent, no real journey changes) but you can see if triggers fire.

Use "Add to Journey" for Global Agents

Global agents should route contacts to journey agents:

Example Tool:

  • Name: "HVAC Interest"
  • Trigger: "user indicates they need HVAC services"
  • Action: Add to Journey: "HVAC Leads Journey"

This ensures leads get specialized engagement from journey-specific agents.

Action Type Use Cases

When to Use Internal Notification

  • Team needs to know about something
  • Not time-critical
  • Want clickable link to contact/conversation

When to Use Email Notification

  • External team members who don't often log into brayv.ai
  • Need detailed information in notification
  • Want permanent email record

When to Use Internal SMS

  • Time-critical (emergency, callback request)
  • Team member needs to act immediately

When to Use Send SMS to Contact

  • Contact is out of territory (after turning off AI)
  • Final goodbye message (after ending journey for some specific reason)
  • Specific scripted response needed

When to Use Turn Off AI

  • Contact not interested (typically in tandem with End Journey action)
  • Manual intervention needed
  • Escalation to human, but you want to retain the option of turning back on the AI later and having the customer journey proceed uninterrupted
  • Wrong contact info (typically in tandem with End Journey action)

When to Use Mark DND

  • Contact explicitly requests no contact
  • Wrong number / bad info
  • Compliance requirements

When to Use End Journey

  • Contact not interested
  • Out of service area
  • Any reason to stop journey automation because contact is not qualified for goal, or does not want to proceed

When to Use Complete Journey

  • VIP or special-case contacts where the normal goal flow doesn't apply
  • Contact achieved the goal through another channel (e.g. already booked elsewhere)
  • Edge cases where you want to close the journey positively without the full qualification/booking flow
  • Not for replacing proper completion goal or calendar booking configuration

When to Use Add Tag

  • Categorizing contacts based on conversation signals (e.g. "vip", "returning_customer")
  • Flagging contacts for manual review or follow-up
  • Building segments for reporting or future campaigns
  • Marking specific interests or situations detected in conversation

When to Use Send Webhook

  • Integration with external systems
  • Custom business logic
  • Advanced automation workflows
  • Zapier/Make integration

When to Use Add to Journey

  • Global agent routing to journey agent
  • Service-specific journey handoff
  • Multi-journey workflows

When to Use Zip Code Territory Check

  • Geographic service limitations
  • Territory-based routing
  • Want to automatically screen by location

Example Conditional Tools

Example 1: Callback Request (Notification Only)

Name: "Callback Request"

Trigger: "the user requests a callback or asks to speak with someone from the team"

Tool Response: "successfully alerted team to call user back" This is a great example of place you want the agent to be aware it used the tool and what the tool accomplished so it can assure your contact someone is going to call them

Actions:

  1. Email Notification
    • Recipients: Sales Team
    • Title: "☎️ Callback requested - {contact.full_name}"
    • Content: "{contact.full_name} requested a callback\n\nPhone: {contact.phone}\n\nReason: {trigger.reason}"
    • Rate Limit: 30 minutes

Example 2: Premium Service Interest (Notification + Continue)

Name: "Premium Service Interest"

Trigger: "the user asks about or expresses interest in premium or high-end service options"

Tool Response: leave it empty - you want the agent to forget this action and not mention it.

Actions:

  1. Email Notification
    • Recipients: Owner
    • Title: "💎 Premium lead: {contact.full_name}"
    • Content: "High-value opportunity detected\n\n{trigger.reason}"
    • Rate Limit: 60 minutes

Note: AI continues conversation - just notifies team of high-value lead.

Example 3: Not Interested (Full Cleanup)

Name: "Not Interested"

Trigger: "the user explicitly indicates they are not interested in the product or services being offered"

Tool Response: leave it empty, the agent is turning itself off in this scenario anyway.

Actions:

  1. End Journey - ended
  2. Turn Off AI

Example 4: Emergency Service (Alert Team)

Name: "Emergency Service Request"

Trigger: "the user indicates they have an emergency situation or urgent need"

Tool Response: optional - depends how you want to instruct the agent to handle this situation.

Actions:

  1. Internal SMS
    • Recipients: On-call Tech, Manager
    • Message: "🚨 EMERGENCY: {contact.full_name} needs urgent service. Phone: {contact.phone}"
    • Rate Limit: 0 (no limit for emergencies)

Example 5: Service-Specific Routing (Global Agent)

Name: "Route to HVAC Journey"

Trigger: "the user indicates they need HVAC services, air conditioning, heating, or furnace work"

Actions:

  1. Add to Journey - HVAC Leads Journey

Example 6: Out of Territory Handling

Name: "Territory Check"

Trigger: "the user provides or confirms their 5 digit zip code"

Tool Response: optional, but most leave it empty - the Zip Code Territory Check action will automatically handle appropriately if out of territory, and if in-territory it can keep the conversation flowing.

Actions:

  1. Zip Code Territory Check
    • Territory Codes: "90001, 90002, 90003, 90004, 90005"
    • Out-of-Territory Actions:
      1. End Journey (ended)
      2. Turn Off AI
      3. Send SMS to Contact: "Thanks for reaching out! Unfortunately we don't currently service your area. We appreciate your interest!"
      4. Email Notification to admin: "{contact.full_name} out of territory - {trigger.reason}"

Monitoring Conditional Tools

AI Text Agent Logs

View when tools trigger:

Access: AI Agents page > Logs tab

What You See:

  • Which conditional tools triggered
  • AI's reasoning for triggering
  • Which actions were executed
  • Any errors in action execution
  • Full conversation context

Use For:

  • Verifying tools trigger correctly
  • Understanding AI's decision-making
  • Debugging false positives/negatives
  • Optimizing trigger conditions

Adjusting Based on Logs

If tool triggers too often (false positives):

  • Make trigger conditions more specific
  • Add exclusions to trigger language
  • Increase rate limit

If tool doesn't trigger when it should (false negatives):

  • Make trigger conditions less specific
  • Add alternative phrasings
  • Test more conversation scenarios

Common Mistakes to Avoid

Mistake 1: Vague Trigger Conditions

❌ "pool" ✅ "the user indicates they are interested in pool installation, renovation, or repair"

Mistake 2: No Rate Limit on Notifications

❌ Rate limit: 0 on "callback request" notification -- because you'll likely get duplicate notifications ✅ Rate limit: 15-30 minutes

Mistake 3: Not Testing

❌ Create tool, deploy immediately ✅ Create tool, test with agent test feature, then deploy, verify performance over time in AI Text Agent Logs

Mistake 4: Too Many Actions

❌ 10 different actions on one tool -- doable, but potentially complicating how hard it is for you to figure out why certain things are happening. ✅ 2-4 focused actions that accomplish the goal

Mistake 5: Forgetting "Turn Off AI" Before Scripted Messages

❌ Send SMS to Contact (while AI is active) ✅ Turn Off AI → Then Send SMS to Contact

Mistake 6: Not Using Templates or Ava

❌ Manually configure everything from scratch -- Sometimes manual configuration or tweaking will be useful, but you can usually get to 90%+ of what you need much faster by using Quick Add or Ava ✅ Use Quick Add or Ava, then customize

Troubleshooting

Problem: Tool not triggering

Solution:

  • Make trigger conditions more specific or less restrictive
  • Test with agent test feature
  • Review AI Text Agent Logs to see AI's reasoning
  • Verify tool is enabled
  • Check rate limit hasn't prevented triggering

Problem: Tool triggering too often

Solution:

  • Make trigger conditions more specific
  • Add rate limit or increase it
  • Review logs to see false positive patterns
  • Add exclusions to trigger language

Problem: Actions not executing

Solution:

  • Check that action is fully configured (required fields filled)
  • For notifications: Verify recipients are selected, for sms verify that your team members have a cell phone in their phone number field.
  • For journey changes: Verify journey exists
  • For webhooks: Test webhook URL separately
  • Review AI logs for error messages

Problem: Notifications not received

Solution:

  • Verify recipients have valid email addresses or phone numbers
  • Check spam folder for email notifications - if in spam, mark as 'Not Spam" explicitly so you receive these emails in the future.
  • For in-app: Check notifications bell icon in brayv.ai
  • Verify notification channels are enabled (email/in-app)
  • Check rate limit hasn't prevented sending

Problem: "Add to Journey" not working

Solution:

  • Verify journey exists and is active
  • Check that journey has Starting Line stage
  • Review contact's opportunities (may already be in journey)
  • Check AI logs for errors

Problem: Territory check not working correctly

Solution:

  • Verify contact has zip_code field populated
  • Check zip code format (must be 5 digits)
  • Ensure territory zip codes are comma-separated
  • Review contact.in_territory field after tool triggers
  • Test with known in/out of territory zip codes

Problem: AI still responded when Turn off AI was executed

Solution:

  • It's likely a temporary timing issue. AI response to the contact message that triggered the turn off will still go to the contact (most of the time). This is because these tools execute in parallel with the agents conversational response, and likely all the actions on the tools will not be fully complete by the time the AI responds conversationally.
  • Messages from the contact after that will not be responded to
  • Check the contact page to ensure Text AI is actually off
  • If it is not, check the activity history to see if something/someone turned text AI back on.
  • If text AI is off, and AI continues to respond, please contact support, and if necessary mark contact as Do Not Text for the time being. (This scenario should really never happen.)

Related Features