Get your API key
All integrations Support

Freshdesk + MailKite

Freshdesk is a help desk platform. Use MailKite to receive inbound email as Freshdesk tickets — customer support requests are created automatically.

What you need

Send email

Use MailKite SMTP for outbound transactional email. Freshdesk handles replies within its ticket system.

smtp-config
SMTP Host: smtp.mailkite.dev
SMTP Port: 587
SMTP Username: mailkite
SMTP Password: mk_live_...
From: hello@yourdomain.com

Receive inbound email (optional)

Point your domain's webhook to this handler. Each inbound email creates a Freshdesk ticket automatically.

handle-inbound.ts
// Receive inbound email → create Freshdesk ticket
const FRESHDESK_API = 'https://yourdomain.freshdesk.com/api/v2';

async function handleInbound(email) {
const res = await fetch(`${FRESHDESK_API}/tickets`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `${process.env.FRESHDESK_API_KEY}:X`,
},
body: JSON.stringify({
email: email.from,
subject: email.subject || 'Inbound email',
description: email.text,
type: 'Incident',
priority: 1,
}),
});
return res.json();
}

Test it

terminal
curl -X POST https://your-worker.example.com/mailkite-inbound \
-H "Content-Type: application/json" \
-d '{"from":"user@example.com","to":"support@yourdomain.com","subject":"Bug report","text":"The button doesn\'t work."}'

Troubleshooting

  • Freshdesk API key is your password with :X appended (e.g. abc123:X).
  • Ensure the sender email exists as a Freshdesk contact, or enable "auto-create contacts."
  • Find your API key under Profile Settings → Your API Key.

See the SMTP relay docs for the full connection reference, or all integrations for other platforms.