Guides
Build a Thoughtly workflow that calls new shipper quote requests, confirms lane details, routes qualified opportunities, and writes outcomes back to your CRM or TMS.
Last updated
Freight quote requestQuote requestAn inbound request for pricing or coverage information, common in insurance, mortgage, home services, solar, automotive, and other high-consideration funnels. follow-up should begin when a first-party shipper asks for a quote, not when a rep finally clears an inbox. With Thoughtly, a brokerage can triggerTriggerThe event or condition that starts an automated workflow, such as a new lead, missed call, CRM status change, calendar booking, or completed call. a consent-backed voice call from a form, CRMCRMThe system of record for leads, contacts, deals, and activity. Thoughtly reads from and writes to your CRM continuously. event, or webhookWebhookAn event-based integration that sends data from one system to another when something happens, such as a form submission, booked appointment, or completed call., confirm the lane and timing, continue by SMS or email, and hand a qualified opportunity to a human broker with context. The agent should not invent a price, promise capacity, or select a carrierCarrierA telecommunications provider that routes phone calls and SMS over its network. Twilio, Telnyx, and Bandwidth are the three most common in the AI voice space.. Those decisions belong to live systems and accountable people.
This guide shows the implementation after you have chosen Thoughtly. For the earlier platform decision, use the buyer guide to AI voiceAI voiceAn artificially generated, natural-sounding voice produced by a TTS model. Thoughtly supports a library of AI voices and brand-specific cloning. agents for freight brokers. The distinction matters: a comparison page helps you choose a product; this page defines the event, data, conversation, handoff, and record changes that make one shipper workflowWorkflowAn automated, multi-step process — usually triggered by an event (form fill, new lead) and orchestrating one or more voice / SMS / email actions. production-ready.
A generic form callback asks whether a lead is interested. A freight callback must also preserve the difference between a shipper sales opportunity and a carrier operations interaction, attach the right shipment context, and stop before a commercial commitment. That is enough domain logic to justify a dedicated workflow, but not enough to justify pretending the voice agentVoice agentAn autonomous, conversational interface that interacts with humans over the phone — answering, qualifying, and routing calls without human staffing. is a freight expert with independent authority.
Thoughtly already supports the horizontal mechanics: Automations connect triggers to calls, messages, conditions, and external actions, while the Agent Builder handles conversation nodes, variables, outcomes, actions, transfers, and testing. The brokerage supplies the operating policy: which inquiry is eligible, which shipment fields matter, what counts as qualified, and when a broker must take over.
If your only problem is getting any web form to launch a call, the existing form-fill follow-upForm-fill follow-upFollow-up triggered when someone submits a web form, quote request, application, or demo request. Speed matters because intent decays quickly after submission. implementation guide already owns that setup. The freight-specific job begins after the event arrives: separating contact and load data, collecting a broker-ready minimum, preventing unsupported quotes, and producing a record the sales desk can act on.
The cleanest design has one initiating event and one accountable business result. Adding carrier procurement, check calls, claims, and track-and-trace to the same first pilot creates more failure paths than learning.
| Stage | System action | Required output | Human boundary |
|---|---|---|---|
| 1. Inquiry received | CRM, form, or webhook sends a unique event | Contact, permission source, inquiry ID, submitted fields | Reject stale, duplicate, or ineligible events |
| 2. Contact prepared | Create or update the Thoughtly Contact | Stable contact ID and limited persistent attributes | Do not overwrite unrelated contact history |
| 3. Eligibility checked | Conditions validate permission, phone, ownership, and timing | Eligible or stopped disposition | Suppression and policy failures never reach the call step |
| 4. Call placed | Thoughtly calls the Contact with request metadata | Right person, active need, lane and timing confirmed | No rate, capacity, contract, or carrier promise |
| 5. Opportunity routed | Transfer, task, or scheduled next step | Broker receives structured context | A person owns exceptions and commercial judgment |
| 6. Result written back | On Call Completed updates CRM, TMS, or middleware | Controlled disposition, fields, owner, next action | Failed writes create a visible exception |
| 7. Follow-up continued | Permitted SMS or email handles non-connects and recaps | Reply, scheduled callback, or clean closure | Stop requests suppress future contact |
The trigger should describe a real business event, not merely a row appearing somewhere. Name it narrowly, such as new_shipper_quote_request, shipper_event_follow_up, or known_account_lane_inquiry. The narrower name forces the team to decide what is in scope before the automation starts spending attention and call attempts.
A practical eligible population is a person who submitted a brokerage quote form, asked for a callback, engaged at an event and agreed to follow-up, or already exists as an active account contact with an approved reason to call. The FCC ruling on AI-generated voices confirms that AI-generated voice calls fall within the TCPATCPAUS federal law governing telemarketing calls and SMS. Thoughtly enforces consent capture, time-of-day windows, and DNC scrubbing automatically. rules for artificial or prerecorded voice calls and discusses consent, identification, and opt-outOpt-outA recipient’s request to stop receiving calls or messages. Compliant systems must capture opt-outs and suppress future outreach where required. duties. Counsel should map those rules and any state requirements to the actual call population before launch.
For a first deployment, the agent may confirm shipment facts, identify urgency, answer approved brokerage FAQs, offer a broker conversation, transfer the call, and record the result. It should not state a freight rate, guarantee equipment, accept a tender, select a carrier, modify a contract, or resolve a claim unless a deterministic tool and approved operating policy explicitly support that action.
Freight identity problems deserve a separate hard stop. FMCSA fraud guidance tells brokers and carriers to verify phone information through SAFER and stop suspicious transactions. The useful voice workflow records uncertainty and routes it. It does not turn a plausible conversation into proof of identity.
Use a native CRM or form trigger when the source event already exists there. Thoughtly currently documents new-contact triggers for HubSpot, GoHighLevel, Keap, Salesforce, and Zoho CRM, plus Typeform responses and SmartSheet row events. For a TMS, custom form, or middleware event, use an Incoming Webhook. The current trigger reference shows how each trigger exposes a sample Output schema for field mapping and explicitly recommends idempotency for retried webhooks.
A minimal event should include event_id, inquiry_id, source, submitted_at, contact identity, channel permissions, and the shipment fields already supplied. Send only what the workflow needs. A payload stuffed with an entire account or load record makes mapping brittle and expands the data exposed to the conversation layer for no useful reason.
When the source can only send HTTP, Thoughtly documents an automation webhook endpoint that accepts an arbitrary JSON object. Run a representative event in Draft mode, refresh the trigger Output, and map from the observed schema. Do not type field paths from memory and hope the live payload agrees.
Make the downstream workflow idempotent too. Before Call Contact, look up the inquiry ID or event ID in your CRM, TMS, or middleware. If the event is already processing or complete, write duplicate_ignored and end. An inbound integration that retries is behaving normally; two simultaneous calls are your implementation defect.
Call a Thoughtly Contact rather than a raw phone number when you need durable history and reusable traits. The Automation Actions reference documents Create or Update Contact, Get Contact by Phone Number, Add Attributes to Contact, and Call Contact. That sequence gives the workflow a stable contact_id before the call starts.
Thoughtly distinguishes persistent Contact Attributes from per-call Metadata. According to the Attributes versus Metadata guide, attributes stay on the Contact across future interactions, while metadata carries context for one call. That distinction is especially useful in freight: the person and account may persist, but today's shipment does not.
Do not flatten every lane into the Contact record. That creates a confident agent with yesterday's freight facts, which is a particularly expensive kind of personalization.
Thoughtly's Agent Builder overview recommends starting with a simple node flow, adding variables and outcomes, using Actions for external work, then testing in text and live voice. Follow that order. A compact flow is easier to audit than a single heroic prompt expected to infer policy, collect data, and make decisions at once.
The first node should identify the brokerage and explain that the call follows the shipper's request. Confirm the correct person before revealing shipment details. Offer a clear path to a person and honor any request to stop. Exact disclosures and must-say language belong in a fixed Message node, not a generative instruction.
Ask only for fields the broker needs to decide the next action. A sensible minimum is current need versus future planning, origin and destination, equipment type, pickup window, approximate shipment cadenceCadenceA cadence is the planned sequence of calls, texts, emails, delays, and retries used to follow up with a lead until they answer, opt out, book, or become inactive., and whether the contact wants to speak now or schedule a follow-up. Repeat back critical lane and date information rather than silently trusting extraction.
Create narrow variables such as active_shipment, lane_origin, lane_destination, equipment_type, pickup_window, shipment_cadence, wants_broker_now, callback_time, and stop_requested. The Variables documentation explains that variables are extracted before outcomes evaluate, can be typed as text, number, or boolean, and should include explicit instructions plus missing-value handling.
Use prompt-based outcomes to interpret open-ended intent, such as active load, future planning, needs information, or not a shipper. Use rule-based outcomes for exact conditions, such as stop_requested equals true, crm_lookup_found equals false, required fields missing, or broker_available equals false. Thoughtly's Outcomes guide recommends deterministic rules for critical logic and a final Else path. That is the correct design here: natural language may classify the request, but policy decides whether the workflow can act.
A qualified shipper call is valuable only if the next person receives it with enough context to continue. Decide the transfer destination, availability signal, timeout, fallbackFallbackA safe backup path used when the caller says something unexpected, an integration fails, or the agent cannot confidently complete the intended step., and record owner before launch. "Transfer to sales" is not an operating design.
Thoughtly supports mid-call integrations and action results that can update variables for immediate routing, as described in the Agent Actions reference. For the human side of the pattern, the existing guide to routing high-intent leads with early call summaries covers the handoff contract in more depth.
Use Thoughtly's On Call Completed trigger for the post-call workflow. The current trigger documentation says it exposes call outcomes, captured variables, transfer flags, voicemail detectionVoicemail detectionVoicemail detection is the ability to identify when a call reaches a voicemail greeting instead of a live person, then trigger the right message, callback, or alternate-channel follow-up., and other call data for CRM updatesCRM updatesCRM updates are the automatic changes an agent writes back after a conversation, such as status, notes, next step, owner, appointment, or disposition., notifications, and analytics. Send Webhook is appropriate when your TMS or middleware needs the result.
Keep the disposition set small enough that a revenue team can define each value without debate. Store the transcriptTranscriptThe text record of a voice conversation, used for review, training, compliance audit, and search. and summary as supporting evidence, but let a structured status drive ownership, follow-up, and reporting.
| Disposition | Required write-back | Next action |
|---|---|---|
| qualified_quote_request | Confirmed request fields, owner, timestamp, inquiry ID | Transfer completed or broker task due |
| planning_future_shipment | Expected window, cadence, permission, next contact date | Enter approved nurture path |
| broker_callback_requested | Requested time, timezone, owner, unanswered question | Schedule or create task |
| needs_manual_review | Reason code and available evidence | Route to freight operations or sales manager |
| not_shipper_or_wrong_contact | Reason and corrected contact data if supplied | Close or repair record |
| no_answer_or_voicemail | Attempt number, timestamp, channel permissions | Start permitted fallback |
| stop_requested | Suppression timestamp, source channel, audit note | End every automated follow-up |
| duplicate_or_stale_event | Original event reference and reason | No call or message |
Thoughtly's webhook integration guidance recommends On Call Completed for post-call workflows and Send Webhook when results must reach an external system. The external endpoint should accept retries and return a visible failure state. A silent 200 followed by a dropped TMS update is not integration success.
A no-answer should not restart the whole decision treeDecision treeA flowchart-style conversation structure where the agent branches based on caller responses — the explicit logic behind a voice flow.. Use the same inquiry ID and attempt state across channels so a reply, stop request, or completed broker conversation closes every remaining step.
Thoughtly Automations can place calls, send SMS, send email, apply Conditions, and update connected systems. The existing multi-channel follow-upMulti-channel follow-upA follow-up motion that uses more than one channel — usually voice, SMS, and email — to improve contact rates after a prospect raises their hand. guide explains the horizontal sequencing pattern. For freight quote requests, keep the message specific: identify the brokerage, refer to the request without exposing sensitive detail, offer one clear next step, and preserve the channel permissions captured at submission.
A useful fallback may send one concise SMS after a missed call, offer a broker callback link, or email a request recap for confirmation. The sequence should stop when the contact replies, transfers successfully, books a time, asks not to be contacted, or the inquiry becomes stale. More attempts are not automatically more coverage; sometimes they are merely more evidence that the state machine is asleep.
Test each node in text first, then use live calls to check speech, latencyLatencyThe delay between a caller speaking and the agent responding. Lower latency makes AI voice conversations feel more natural., transfers, and external actions. Thoughtly's agent testing guide treats text simulation and live voice tests as separate stages. Both matter because a logical branch can work perfectly while the actual transfer, pronunciation, or webhook fails.
For the first live cohort, review every unsuccessful transfer and every needs_manual_review result. The workflow is ready to scale only when failures leave an accurate record and a named owner, not when the demo path sounds polished.
Use the business state after the conversation as the primary measure. A fast call that produces an incomplete or ownerless record is not a revenue win. Compare the automated cohort with the brokerage's prior process or a concurrent holdout, and keep source, account segment, lane type, and contact window visible so the result is interpretable.
Do not invent an industry benchmark to make the pilot look scientific. Establish your baseline, define the attribution window, and keep operational diagnostics separate from commercial outcomes. Thoughtly's guide to measuring conversion lift from AI follow-up gives a broader holdout and reporting framework.
A two-week pilot is long enough to observe real edge cases and short enough to keep scope disciplined. The goal is not to declare victory after an arbitrary number of calls. It is to decide, with auditable evidence, whether the workflow can move one shipper state safely and consistently.
Webhook delivery can repeat. Without event-level idempotency, the workflow can call the same shipper twice, assign competing tasks, and make a healthy integration look broken to the buyer.
Lane and pickup details belong to an inquiry or call unless they are genuinely stable account facts. Reusing stale context is worse than asking a concise confirmation question.
A document library can answer approved process questions. It should not substitute for current pricing, equipment, carrier, or availability data. Use a live deterministic lookup or transfer the question.
Prompts are useful for interpreting language. Rules and authoritative actions should enforce stop requests, required fields, lookup failures, permission, and the boundary before any commitment.
The next broker needs an owner, disposition, confirmed facts, unresolved question, and due action. Making a person reread the whole conversation recreates the manual backlog with nicer audio.
Volume magnifies unowned failures. Name who receives failed transfers, suspicious identities, missing records, and write-back errors before the first production call.
Thoughtly publicly documents REST APIs, incoming and outgoing webhooks, middleware paths, and broad CRM and automation integrations, but it does not currently publish a named freight-TMS integration package. Treat connection as a proof requirement: demonstrate the exact lookup, object update, error path, and retry behavior in your stack before launch.
Start with the minimum a broker needs to choose the next action: active need or planning, origin, destination, equipment type, pickup window, approximate cadence, and preferred next step. Confirm critical lane and date details aloud, preserve the source inquiry ID, and avoid collecting fields that the downstream owner will not use.
Not from a prompt or static knowledge baseKnowledge baseA structured source of business information, FAQs, policies, product details, or procedures that an AI agent can use to answer accurately.. A rate response requires current authoritative data, explicit policy, permissions, auditability, and a human exception path. The safer first use case is to qualify the request and connect the shipper with the broker who owns the commercial decision.
Thoughtly provides general voice, automation, webhook, and integration building blocks, so a team can design other workflows. Carrier sales and operations add live load data, identity checks, rate controls, TMS actions, and exception logic. Build and validate that as a separate program rather than slipping it into the shipper-sales pilot.
Start as soon as the event is eligible under your permission, suppression, ownership, and contact-window rules. Thoughtly Automations can react to CRM, form, or webhook events in real time, but the correct operating target should come from your own baseline and staffing model rather than an invented universal number.
Use the furthest reliable business outcome the pilot can attribute, such as qualified quote requests, completed broker conversations, loads booked, or gross margin. Pair it with exception and data-quality measures so the team does not improve the headline result by hiding failed writes, duplicates, or risky handoffs.
Thoughtly is a strong fit for freight quote request follow-up when the job is to respond to known shipper demand, carry the conversation across permitted channels, and move a qualified opportunity to a person. Its value is not autonomous freight judgment. It is reliable coverage around a policy your brokerage already owns.
Begin with one event, one controlled disposition set, and one accountable handoff. Use Thoughtly Automations for the trigger and write-back, the Agent Builder for the conversation and routing, and live system data for facts that can change. When every failure leaves the next person with accurate context, you have an implementation worth scaling.