Pick a connection method.
Wendesk supports five ways to integrate with external tools. Pick the one that fits your shape:
- REST API — pull-based; you call us. Best for syncing data on a schedule (e.g., nightly export to your data warehouse).
- Webhooks — push-based; we call you. Best for real-time reactions (e.g., new lead → Slack message).
- OAuth 2.1 + PKCE — for user-installed apps that need a tenant-scoped token.
- MCP server — expose tenant tools to AI agents (Claude, ChatGPT, Cursor). See MCP docs.
- Zapier / Make — no-code; for ops teams without engineers. 5,000+ destination apps.
CRM & Pipelines.
Common use cases
Two-way sync with Salesforce / HubSpot
Mirror Wendesk leads + deals into your existing CRM nightly or in real-time via webhooks.
Stream to BigQuery / Snowflake
Webhook all CRM events to your warehouse via a Cloud Run / Lambda receiver.
Power BI / Tableau dashboards
Direct connector via REST — pull pipeline + activity data into your BI tool.
Slack alerts on hot leads
Webhook → Zap → Slack message in your sales channel when a deal hits "qualified".
Quickstart — pull leads via REST
Authenticate with a tenant-scoped bearer token from Settings → Developer → API keys. Set X-Wendesk-Tenant to your workspace slug.
curl https://api.wendesk.com/v1/crm/leads?limit=20&stage=qualified \ -H "Authorization: Bearer wd_live_xxx" \ -H "X-Wendesk-Tenant: acmecorp"
import { Wendesk } from '@wendesk/sdk';
const client = new Wendesk({
apiKey: process.env.WENDESK_KEY,
tenant: 'acmecorp',
});
const { data } = await client.crm.leads.list({
limit: 20,
stage: 'qualified',
});
console.log(data.length, 'qualified leads');from wendesk import Wendesk
client = Wendesk(
api_key=os.environ["WENDESK_KEY"],
tenant="acmecorp",
)
leads = client.crm.leads.list(
limit=20,
stage="qualified",
)
for lead in leads.data:
print(lead.name, lead.phone)Webhook events
Subscribe in Settings → Developer → Webhooks. We sign every payload with HMAC-SHA256 — verify with the secret shown at subscribe time.
crm.lead.created— new lead from any sourcecrm.lead.stage_changed— pipeline stage transitioncrm.deal.won/crm.deal.lost— terminal deal eventscrm.activity.logged— call, meeting, note addedcrm.contact.merged— duplicate dedup happened
WhatsApp Inbox.
Common use cases
Order confirmations from Shopify
When Shopify fires order.paid, send a WhatsApp confirmation with tracking link via Wendesk.
Drip campaigns from your CDP
POST to /v1/wa/campaign with a segment ID + template — we handle Meta's 24h window logic.
Auto-create CRM lead
Webhook wa.message.received from a new number → auto-create CRM lead + assign to a rep.
Mirror to Zendesk / Freshdesk
Two-way bridge — replies in Zendesk go out via WhatsApp; inbound WhatsApp creates Zendesk tickets.
Send a templated WhatsApp message
curl -X POST https://api.wendesk.com/v1/wa/send \
-H "Authorization: Bearer wd_live_xxx" \
-H "X-Wendesk-Tenant: acmecorp" \
-H "Content-Type: application/json" \
-d '{
"to": "+919876543210",
"template": "order_confirmation_v2",
"language": "hi",
"params": {
"name": "Aditya",
"order_id": "INV-18244",
"tracking_url": "https://wd.sk/t/18244"
}
}'
# Response — 202 Accepted
{ "message_id": "wamid.HBgM...", "status": "queued" }You must pre-register marketing templates with Meta via Wendesk Settings → WhatsApp → Templates. Approval takes minutes-to-hours. Service notifications (24h window) work without approval.
Webhook events
wa.message.received— inbound from customerwa.message.delivered/wa.message.read— delivery receiptswa.template.approved/wa.template.rejected— Meta moderation outcomewa.account.quality_changed— quality score changed (yellow/red flags)
Content Studio.
Common use cases
Weekly newsletter from a CSV
POST a topic + 5 product links → get a brand-voiced HTML email back, ready for Mailchimp.
One post, 5 platforms
Generate once, publish to LinkedIn / Instagram / X / Facebook / WhatsApp Status with platform-tuned variants.
10 Indian languages
Pass languages: ['hi','ta','te','mr','bn'] — get back native-trained translations (not Google Translate).
Sounds like your CSM
Train a brand-voice profile on 20 sample posts → all generated content matches that tone forever.
Generate a post
curl -X POST https://api.wendesk.com/v1/content/generate \
-H "Authorization: Bearer wd_live_xxx" \
-H "X-Wendesk-Tenant: acmecorp" \
-H "Content-Type: application/json" \
-d '{
"type": "linkedin_post",
"brand_voice": "voice_M3xK1jL",
"topic": "Our Q3 product update for SMB customers",
"languages": ["en", "hi"],
"tone": "celebratory but humble",
"max_chars": 1300
}'Voice Agent.
Common use cases
Bulk reminder calls
POST a CSV of phone numbers + script → voice agent calls each, logs the conversation, books appointments.
Replace IVR menus with conversation
Caller speaks naturally — agent understands intent, routes to the right human or completes the task.
Auto-call hot leads
When a deal hits "qualified" → fire a voice agent call within 60s for first contact.
Auto-detect language
Voice agent detects Hindi vs Tamil vs English in the first 2 seconds, switches mid-call if needed.
Schedule an outbound call
curl -X POST https://api.wendesk.com/v1/voice/calls \
-H "Authorization: Bearer wd_live_xxx" \
-H "X-Wendesk-Tenant: acmecorp" \
-H "Content-Type: application/json" \
-d '{
"to": "+919876543210",
"agent_id": "agent_M3xK1jL",
"language": "hi",
"script": "appointment_reminder_v3",
"context": {
"customer_name": "Aditya",
"appointment_date": "2026-02-15 16:00 IST"
},
"callback_url": "https://your.app/wd/voice/result"
}'Webhook events
voice.call.completed— full transcript + outcome (booked / declined / busy / no-answer)voice.call.escalated— caller asked for a human; queued in CRMvoice.recording.ready— encrypted recording URL (90-day retention; 6yr for healthcare)
No-code: Zapier & Make.
If you don't have engineers, install the Wendesk Zapier app or Make module. Both expose triggers (new lead, message received, deal won) and actions (send WhatsApp, create lead, generate content).
- Zapier — install from zapier.com/apps/wendesk. 14+ triggers, 22+ actions.
- Make — install from the Make module store. Visual scenario builder for multi-step flows.
- n8n (community) — self-hosted alternative; we maintain a community node.
Zapier is great for "fire and forget" — it caps at 1 task per second per Zap. For high-volume sync, use direct webhooks → your own consumer.