message.comDevelopers

Migrate from Crisp to message.com

Crisp is a developer-friendly chat tool popular with European SaaS teams. message.com keeps the developer-first feel (good REST API, real-time events, scriptable widget) and adds the unified inbox for tickets and phone with no per-seat tax.

What stays the same

  • Snippet-style install. One async tag.
  • Identify pattern. Both expose a window-level object.
  • JavaScript API for custom flows. Crisp's $crisp.push maps to message.com's typed JavaScript API.
  • Triggers / bots. Crisp Magic Replies and bot scenarios map to proactive messages and the AI agent.

What is different

  • No per-seat cap. Crisp Pro and Unlimited price on seats; message.com does not.
  • Phone is native. message.com runs its own carrier-grade voice infrastructure, so calls land in the same inbox.
  • Unified inbox. One conversation primitive for chat, email tickets, and calls.
  • AI grounded in your data. KB ingestion, Smart Hold, AI Receptionist included.

1. Export Crisp data

  1. In Crisp, go to Settings → Workspace → Data export.
  2. Export People (contacts) and Conversations.
  3. Crisp emails you a download link.

2. Set up message.com

  1. Sign up at app.message.com/register.
  2. Onboarding takes 90 seconds. Add channels as needed.
  3. Copy the install snippet.

3. Import contacts

Upload the People CSV under Settings → Visitors → Import. Column mapping:

  • Crisp email → message.com email.
  • Crisp nicknamename.
  • Crisp people_idexternalId with crisp: prefix.
  • Segments → tags.
  • Data points → custom attributes.

4. Swap the snippet

Remove the client.crisp.chat snippet. Paste:

HTML
<script>
  (function(d,s,o){
    var j=d.createElement(s);j.async=1;j.src='https://app.message.com/widget.js';
    j.dataset.workspace=o;
    d.head.appendChild(j);
  })(document,'script','YOUR_WORKSPACE_ID');
</script>

5. Re-implement scripted flows

Translate $crisp.push calls to Message calls:

  • $crisp.push(["set", "user:email", ...])Message.identify({ email }).
  • $crisp.push(["do", "chat:open"])Message.open().
  • $crisp.push(["set", "session:data", ...])Message.update(...).
  • Crisp bot scenarios → proactive messages or AI agent. See Build an AI agent with tools.

Cutover checklist

  • Staging install: launcher renders, identify fires, test chat round trips.
  • Crisp bot scenarios recreated (proactives + AI tools).
  • CSP allowlist updated.
  • Mobile tested.
  • Webhooks / Crisp Plugins reviewed: rebuild as message.com webhook handlers or AI custom tools.
  • Dual-load for a week.
  • Remove Crisp from production.
  • Cancel Crisp.

Common pitfalls

  • Crisp Helpdesk articles. Crisp's docs.crisp.chat help center is separate. If you used it, plan KB migration. See Knowledge base vs help center.
  • Crisp Plugins ecosystem. Public Crisp plugins do not transfer. Rebuild equivalents via webhooks or AI custom tools.
  • MagicReplies. Crisp's template responses → message.com saved replies (Saved replies API).
  • Session continuity. Active Crisp conversations stay in Crisp. Freeze, communicate to customers, migrate fresh.