Tools

CRM & Webhooks

Connect your agents to CRMs, look up customer data, and send information to external systems via webhooks.

CRM & Webhooks

Connect your agents to customer data and external systems. Use the Get User tool to look up caller information from your CRM, and webhooks to push data to any external service in real time.

Get User Tool (CRM Lookup)

The Get User tool lets your agent look up caller or user information from your CRM before or during a conversation. When someone calls or chats, the agent can instantly pull up their profile, order history, account status, or any other data you store.

How It Works

  1. A user contacts your agent (via chat, phone, or API).
  2. The agent calls your CRM webhook with the user's identifier (phone number, email, or ID).
  3. Your CRM returns the user's profile data.
  4. The agent uses this data to personalize the conversation.

Setting Up the Get User Tool

  1. Navigate to Agents and select your agent.
  2. Go to the Tools section and click Add Tool.
  3. Select Get User (CRM Webhook).
  4. Configure the webhook:
SettingDescriptionExample
Webhook URLYour CRM endpoint that returns user datahttps://api.yourcrm.com/lookup
MethodHTTP methodGET or POST
Lookup FieldWhat identifier to sendPhone number, email, or custom ID
HeadersAuthentication headersAuthorization: Bearer xxx

Example CRM Webhook

Your webhook should accept a lookup parameter and return user data as JSON:

Request:

GET https://api.yourcrm.com/lookup?phone=+15551234567
Authorization: Bearer your-api-key

Response:

{
  "name": "Sarah Johnson",
  "email": "sarah@company.com",
  "account_type": "Enterprise",
  "account_status": "Active",
  "last_order": "2026-02-28",
  "total_spent": 12500,
  "notes": "Preferred contact: email. Interested in annual plan."
}

The agent receives this data and can reference it throughout the conversation.

Using CRM Data in Conversations

Configure your agent to use the lookup data naturally:

Agent instructions:
"At the start of each conversation, look up the user's information using
the Get User tool. Use their name and account details to personalize
the interaction.

If the user is an Enterprise customer, prioritize their request and
offer to connect them with their dedicated account manager.

If their account status is 'Past Due', gently mention the outstanding
balance and offer to help resolve it."

Sample voice call:

[Incoming call from +1-555-123-4567]

Agent:  [Calls Get User webhook with phone: +15551234567]
        [Receives: name=Sarah Johnson, account=Enterprise, status=Active]

        "Hello Sarah! Thanks for calling. I see you're on our Enterprise
         plan. How can I help you today?"

Sarah:  "I need to upgrade our seat count."

Agent:  "Of course! You currently have 50 seats on your Enterprise plan.
         How many additional seats would you like to add?"

Custom Webhook Integration

Beyond CRM lookups, you can use webhooks to send data from your agent to any external system.

Sending Data to External Systems

Create a custom webhook tool that pushes data to your backend:

Common webhook use cases:

Use CaseTriggerData Sent
Lead captureUser provides contact infoName, email, phone, interest
Support ticketUser reports an issueIssue description, severity, user ID
Order placementUser confirms an orderProduct, quantity, shipping info
Appointment bookingAgent books a slotDate, time, attendee details
Call summaryCall endsTranscript summary, action items, sentiment

Setting Up an Outbound Webhook

  1. Go to Tools > Add Tool > Custom Tool (API).
  2. Configure your webhook endpoint:
# Example: Create a support ticket
Endpoint: https://api.yourapp.com/tickets
Method: POST
Headers:
  Authorization: Bearer your-api-key
  Content-Type: application/json
  1. Define the parameters the agent will fill in:
ParameterTypeDescription
subjectstringTicket subject/title
descriptionstringDetailed issue description
prioritystringlow, medium, high, urgent
customer_emailstringCustomer's email address
  1. The agent will call this webhook when it determines a ticket should be created.

Webhook Authentication

Secure your webhooks with one of these methods:

# Bearer token
Authorization: Bearer sk-your-webhook-secret

# API key header
X-API-Key: your-api-key

# HMAC signature (verify on your server)
X-Webhook-Signature: sha256=...

Webhook Response Handling

Your webhook should return a JSON response that the agent can use:

{
  "success": true,
  "ticket_id": "TKT-4521",
  "message": "Ticket created successfully"
}

The agent will use this response to confirm the action to the user:

Agent: "I've created a support ticket for you. Your ticket number is
        TKT-4521. Our team will get back to you within 2 hours."

Receiving Webhook Events

You can also trigger agent actions from external events by sending webhooks to the thinnestAI API.

Use Cases

  • New lead in CRM — Trigger the agent to send a welcome email.
  • Payment received — Notify the agent to update the customer's account status.
  • Support ticket updated — Have the agent follow up with the customer.

Sending Events to thinnestAI

curl -X POST https://api.thinnest.ai/agents/{agent_id}/trigger \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "event": "new_lead",
    "data": {
      "name": "Alex Rivera",
      "email": "alex@startup.com",
      "source": "website",
      "interest": "Enterprise plan"
    }
  }'

Example: Full CRM-Connected Voice Agent

Build a voice agent that looks up callers, handles requests, and logs everything to your CRM.

Agent Setup

FieldValue
NameCustomer Service Agent
ModelGPT-4o
ToolsGet User (CRM), Custom Webhook (Create Ticket), SMS

Agent Instructions

You are a customer service agent for Acme SaaS.

ON EVERY CALL:
1. Look up the caller using the Get User tool
2. Greet them by name and reference their account

HANDLING REQUESTS:
- For billing questions: look up their account and answer directly
- For technical issues: create a support ticket with full details
- For upgrade requests: explain the options and offer to process it
- For cancellations: understand why, offer alternatives, escalate if needed

AFTER RESOLUTION:
1. Create a webhook ticket summarizing the interaction
2. Offer to text them a summary or confirmation number via SMS
3. Thank them and ask if there's anything else

TONE: Professional, helpful, empathetic. Never argue with the customer.

Best Practices

CRM Integration

  • Cache responses — If your CRM lookup is slow, consider caching frequent lookups.
  • Handle missing users — Tell the agent what to do if the user isn't found in the CRM (e.g., collect their info and create a new record).
  • Keep data fresh — CRM data can change. The agent fetches it live on each interaction.

Webhook Reliability

  • Return quickly — Your webhook endpoint should respond within 5 seconds. For longer operations, accept the webhook and process asynchronously.
  • Return meaningful errors — If something goes wrong, return an error message the agent can relay to the user.
  • Idempotency — Design your webhooks to handle duplicate calls gracefully.

Security

  • Validate webhook signatures on your server to ensure requests come from thinnestAI.
  • Use HTTPS for all webhook endpoints.
  • Limit data exposure — Only return the CRM fields your agent actually needs.

Webhook Tool (Zapier / Make / n8n)

Send data from your agent to any automation platform. One tool covers Zapier, Make.com, n8n, and any custom webhook endpoint.

Setting Up

  1. Go to Tools > Add Tool > Webhook.
  2. Paste your webhook URL from Zapier, Make, or n8n.
  3. Optionally name it (e.g., "Zapier CRM") and add a webhook secret.
SettingDescriptionExample
Webhook URLYour automation endpointhttps://hooks.zapier.com/hooks/catch/123/abc/
NameFriendly name (optional)Zapier Lead Capture
SecretSignature verification (optional)whsec_...

What the Agent Can Do

The agent has two functions:

  • send_webhook(data, event_type) — Send any JSON data with an event type
  • send_event(event_name, customer_name, email, phone, notes) — Send structured CRM-style events

Example: Zapier Lead Capture

User: "My name is Rahul, email is rahul@company.com, I want a demo"

Agent: [Calls send_event]
  event_name: "new_lead"
  customer_name: "Rahul"
  customer_email: "rahul@company.com"
  notes: "Wants a demo of voice agents"

→ Zapier receives JSON, creates HubSpot contact + sends Slack notification

Payload Format

Every webhook receives this JSON structure:

{
  "event": "new_lead",
  "source": "thinnestai",
  "data": {
    "customer_name": "Rahul",
    "customer_email": "rahul@company.com",
    "notes": "Wants a demo of voice agents"
  }
}

Platform-Specific Setup

PlatformGet Webhook URL
ZapierCreate a Zap → Trigger: "Webhooks by Zapier" → "Catch Hook" → Copy URL
Make.comCreate a Scenario → Add "Webhooks" module → "Custom webhook" → Copy URL
n8nAdd "Webhook" node → Copy test/production URL

Composio (500+ App Integrations)

Connect your agent to 500+ SaaS apps using Composio — including CRMs (Zoho, Pipedrive, Freshsales), productivity tools, and more. Composio handles authentication and API complexity automatically.

Setting Up

  1. Sign up at composio.dev and get your API key.
  2. Go to Tools > Add Tool > Composio.
  3. Paste your Composio API key.
  4. The agent can now access any app you've connected in your Composio dashboard.

Supported Apps

Composio connects to 500+ apps including:

CategoryApps
CRMZoho CRM, Pipedrive, Freshsales, Salesforce, HubSpot
ProductivityGoogle Workspace, Notion, Slack, Asana, Linear
MarketingMailchimp, SendGrid, ActiveCampaign
SupportZendesk, Intercom, Freshdesk
FinanceStripe, QuickBooks, Xero

When to Use Composio vs. Direct Tools

ScenarioUse
You need HubSpot/Salesforce with deep customizationDirect tool (built-in)
You need Zoho/Pipedrive/FreshsalesComposio (no custom code)
You need 5+ different SaaS integrationsComposio (one API key for all)
You need simple webhook automationWebhook tool (Zapier/Make)

Built-in CRM Tools

thinnestAI includes direct integrations for popular CRMs. These are deeper integrations with full CRUD operations.

CRMOperationsSetup
HubSpotContacts, Deals, Companies, Tickets — create, update, searchHubSpot Access Token
SalesforceLeads, Accounts, Contacts, Opportunities — full CRUD + SOQLUsername + Password + Security Token
ActiveCampaignContacts, Deals, Lists — create, update, manageAPI URL + API Key
ApolloPeople search, Company search, Email finder, SequencesApollo API Key
LinkedInProfile lookup, Company search, Share postsLinkedIn Access Token

To add a CRM tool: Tools > Add Tool > select the CRM > enter your API credentials.

Next Steps

  • Custom Tools — Build more complex API integrations.
  • SMS — Send text confirmations and follow-ups.
  • Tools Overview — Browse all available tools.

On this page