RentalTideRentalTideDocs
Dashboard

AI phone assistant

Configure the AI phone agent, phone numbers, staff handoff, knowledge sources, and call logs

The AI phone assistant answers inbound calls for a location, uses your RentalTide data to answer questions, can text booking links, and can hand callers to staff when a human is needed. Manage it from Agents > Phone. The retired /calling page redirects to the same phone-agent workspace.

Note

AI phone setup is location-specific. Select a single location in the location switcher before configuring phone numbers, prompts, or staff routing.


Setup checklist

StepWhereNotes
Connect StripeAdmin > Stripe & paymentsAI phone administration requires a connected Stripe account before the /ai-phone configuration APIs can be used.
Open the phone workspaceAgents > PhoneUse /agents?channel=phone for a direct link.
Get or share a numberPhone number cardSearch by country and area code, then choose a voice-capable number. Shared numbers can serve multiple locations.
Configure the assistantAgent settingsSet the greeting, personality, transfer message, voice, booking-link behavior, and transcript behavior.
Configure staff handoffRing order & scheduleAdd enabled staff, phone numbers, priorities, ring timeouts, weekly schedules, and date overrides.
Turn it onTop-right On/Off switchCalls to the location's Twilio number are answered by the AI when enabled.

Call flow

When the phone agent is enabled, Twilio connects the call to the AI phone WebSocket. The session loads the location, inventory, pricing, caller context, website knowledge, and selected knowledge bases before answering.

If the agent decides a human is needed, it uses the forward_call tool. The handoff route recomputes the current ring list from Ring order & schedule, filters out the caller's own number, plays the configured hold music, and rings staff. If no staff member can be reached, the caller goes to voicemail.

Shared numbers are supported. When multiple locations share a number, only locations with the AI phone enabled participate in the multi-location prompt.


Agent settings

SettingWhat it controlsConstraints
Assistant nameHow the assistant introduces itselfLeave blank to let the system use a generic assistant identity.
Welcome greetingFirst thing the caller hearsKeep it short so callers can state their request quickly.
Personality & instructionsTone and call-handling guidanceUse business rules, escalation preferences, and phrases to avoid.
Transfer messageMessage before human handoffPlayed before staff are rung.
VoiceElevenLabs voice used by ConversationRelayYou can select a listed voice or paste any ElevenLabs voice ID. Some voices may fail preview if they require a paid ElevenLabs plan, but can still work on live calls through Twilio.
Text booking links to callersAllows the agent to send SMS checkout linksThe agent limits booking links per call to avoid spammy repeated sends.
Text missed callers who have a bookingSends a follow-up text after silent or abandoned callsOnly applies when RentalTide can match the caller to an existing booking-holder.
Minimum booking noticeEarliest start time the phone agent may offer0 allows same-day bookings. Use 24 or higher to prevent last-minute AI-created bookings.
Save call transcriptsStores transcript content with call logsUse call logs for quality review and coaching.
Tip

Use specific instructions instead of vague brand language. For example: "If a caller asks about same-day jet ski rentals, check availability first, then text a booking link. If the caller asks about weather refunds, transfer to staff."


Knowledge sources

The assistant builds its answers from several sources:

SourceHow to update itNotes
RentalTide dataInventory, pricing, availability, bookings, and location settingsLoaded at call start and used by phone tools such as availability checks and booking-link creation.
Website knowledgeAdd Website URL, then click Scrape Now or wait for the daily scrapeRuns daily at 4:00 AM UTC. The scraper accepts public HTTP/HTTPS URLs, rejects internal/private targets, does not follow redirects, times out after 15 seconds, and stores up to 8,000 characters.
Knowledge basesSelect chips in Knowledge basesIf nothing is selected, the assistant uses the location's default bases plus shared bases.
Additional contextPersonality & instructions / business context fieldsBest for concise rules that are not already in the website or knowledge base.

After a manual scrape, the settings panel shows the last scrape time, page title, and indexed character count. If scraping fails, review the URL, redirect behavior, and whether the page requires login or blocks bots.


Staff handoff and voicemail

Staff routing is managed in Ring order & schedule:

FieldPurpose
Name and phone numberThe staff member RentalTide will dial during handoff.
PriorityRing order. Lower priority values are attempted first.
Ring timeoutHow long to wait before moving to the next staff member.
EnabledDisabled staff are skipped.
Weekly scheduleAvailability windows by day of week.
Schedule overridesOne-off off/available windows for specific dates.

By default, staff schedules are honored. If scheduling is turned off for the location, all enabled staff can be rung regardless of their schedule.

Handoff is only attempted when the AI explicitly transfers the call or the caller is still connected. This prevents staff from being rung after a caller already hung up.


Live monitoring and call logs

The phone workspace shows:

  • Live calls with in-progress status and transcript updates.
  • Recent calls with caller details, duration, outcome, summary, and transcript.
  • Outcomes such as resolved, transferred, and abandoned.

The Inbox conversation view also uses the phone-call feed, including ALL_LOCATIONS when the inbox is scoped across every owned location.

Note

Live call state is held by the server handling the active call. Completed call logs are persisted and remain available after the call ends.


Developer reference

LayerCodepath
Primary UIsrc/pages/Operations/AgentsPage/components/PhoneChannelWorkspace.tsx
API clientsrc/api/aiChatPhone.ts
Phone config REST APIpackages/RentalTide-Server/src/routes/aiPhoneRouter.ts (/ai-phone/config/:locationId, /calls, /stats, /active-calls, /inbox-calls, /scrape, /voices)
Twilio voice webhookspackages/RentalTide-Server/src/routes/communications/routes/voice.routes.ts (/communication/voice/incoming-call, handoff, voicemail, hold-music presets)
WebSocket sessionpackages/RentalTide-Server/src/services/aiPhone/AiPhoneSession.ts and wsHandler.ts (/ai-phone/ws)
Website scrapepackages/RentalTide-Server/src/services/aiPhone/websiteKnowledge.ts and jobs/scrapeWebsiteKnowledge.ts
Staff routingpackages/RentalTide-Server/src/db/dal/phoneStaff.ts, routes/communications/services/ringEngine.ts, and handoff helpers
Phone numberssrc/api/renters.ts and /userManagement/find-phone-numbers, /purchase-phone-number, /share-phone-number, /unshare-phone-number

Configuration is stored on the location's ivr_config JSONB. The backend updates it inside a primary-database transaction with row locking so rapid toggles and settings saves do not clobber each other.


Troubleshooting

Common issues

The phone workspace will not load or save -- Confirm the account has Stripe connected and that the signed-in user owns the selected location.

No phone number is shown -- Use Get a number for the selected location, or share an existing Twilio number to the location.

Calls still reach the old IVR -- Confirm the AI phone switch is on for the location that owns the dialed number. If AI setup fails during Twilio ingress, calls fall back to IVR/staff routing.

Website scrape fails -- Use a public HTTP/HTTPS page that returns HTML within 15 seconds and does not require redirects, login, or internal-network access.

Staff are not rung -- Check that staff are enabled, have valid phone numbers, and are currently inside their schedule windows. If schedules should be ignored, turn off staff scheduling for the location.

A caller hung up and staff were not rung -- That is expected unless the AI had already initiated a handoff while the call was still in progress.

Was this page helpful?
Need help? Contact Support.See what’s new. Check out changelog.Questions? Book a video chat.
Ask AI
Responses are generated using AI and may contain mistakes.
Ask questions about RentalTide and get help with your integration.