OpenAI models in the AI Assistant
The AI Assistant’s model picker now includes three OpenAI-backed tiers alongside the existing Claude ones — GPT Fast, GPT Balanced, and GPT Deep — each supporting the same streaming replies, image attachments, and (on Balanced/Deep) extended thinking as their Claude counterparts.
- Model choice stays per-thread, exactly as before — pick a tier when starting a thread, or switch tiers on an existing one.
- On the GPT tiers, the “thought process” section may stay empty even with thinking on; reasoning still happens and is billed, but a written summary isn’t always available from OpenAI. See the AI Assistant guide for the full tier list.
CRM dashboard: a real layout instead of eight identical tiles
The CRM Overview dashboard now sizes each widget by what it actually shows, instead of forcing every card into the same quarter-width tile. Sales Funnel, Revenue Trend, Performance Analytics, and Lead Sources — the ones with real charts, multi-part layouts, or period toggles — now get a full primary-width tile; Recent Leads, Deal Pipeline, Conversion Metrics, and Activities stay as compact companions alongside them.
Clearer validation errors on Lead forms
The Add Lead and Edit Lead forms now surface validation problems as a toast — one message when a single field is wrong, a count when several are — instead of a static banner that always read the same regardless of what was actually wrong. Field-level errors (the red text under a field) also now clear the instant you fix that field, rather than staying stuck on screen after you’ve already corrected it.
Session-expiry warning now fires on time
The “your session is about to expire” notice was computing against the wrong session length, so it could show up minutes late, or after you’d already been signed out. It’s fixed to match the real session length, so the warning — and its “stay logged in” option — now appears with real time left to act on it.
Bring your own chatbot
The in-app chat widget is now configured per workspace. Connect your own ConvoSphere agent under Settings → Organization → Chatbot: paste the agent ID from your ConvoSphere account, enable it, and the chat bubble appears for everyone on your team.
- Your agent and its knowledge base stay entirely yours — no other workspace can see or use them.
- Owners and Admins configure it; everyone else can view the configuration.
- A workspace that hasn’t connected one still sees Moyo’s own default assistant, exactly as before — nothing changes until you configure your own or explicitly turn the widget off.
Introducing the AI Assistant
Moyo Suite now has a fifth module: a private, streaming chat assistant powered by Anthropic’s Claude models, available from any page via the “Ask AI” button in the top bar, or from its own workspace at AI Assistant.
- Conversations are saved as threads and persist across sessions.
- Choose Fast, Balanced, or Deep depending on whether you want a quick answer or deeper reasoning — Balanced and Deep support an optional extended thinking mode that shows the assistant’s reasoning before its answer.
- Attach images and text files (PDF, CSV, Markdown, JSON, plain text) to a message once a conversation is started.
- Replies stream in as they’re generated, the same way you’d expect from a modern chat product.
Your plan now decides which modules you get
Signing up put every new workspace on the Free plan but switched on all four modules — CRM, Billing, Expense and Inventory — regardless of what Free actually includes. The onboarding wizard did the same: it checked that the modules you picked were real, never that your plan included them.
A workspace now only gets the modules its plan bundles. Free includes CRM; Starter adds Billing and Expense; Pro and Enterprise include all four.
One way to create a workspace
There were two ways to create a workspace, and only one of them worked properly. The second, older route created the organization and the owner account but nothing else — no team membership, no roles, no permissions, no modules — so the owner could sign in and then be refused by every screen in the product. It also skipped email verification entirely.
Fixes
Sample data is no longer duplicated. Finishing onboarding a second time with an extra module selected — going back to add Inventory, say — re-ran the sample-data step and left you with two of every example contact, deal and account. Onboarding now records that the sample data has been created and won’t create it again.
Roles and permissions no longer error on the first page load after an update. When a release added new permissions, the first few requests after it went live could collide with each other while filling them in, and one would fail with a server error. Filling them in is now safe to do concurrently.
WhatsApp's 24-hour reply window is now visible and enforced
WhatsApp only lets you send a written reply within 24 hours of a customer’s last message. After that, only a pre-approved template gets through.
Moyo used to ignore this. Replying to a day-old conversation sent the message anyway, WhatsApp rejected it, and you got an unhelpful provider error with no explanation. Worse, picking a template — the one thing that would have worked — failed in exactly the same way, because templates were being sent as ordinary text rather than as real templates.
Items now respect workspace permissions
The Items area previously had no permission checks at all — any signed-in member could list, add and delete items regardless of their role. It now uses the same permission model as everything else, with separate view, create and delete permissions.
Existing roles keep working: Owner, Admin and Manager can view, add and delete; Viewer can view.
Removing an organization is now reversible
Deleting an organization used to be permanent and immediate — the record and everything under it, every invoice, deal, contact and audit entry, went at once, including the log that would have recorded the deletion.
An organization can now be marked as deleted instead. It stops being reachable straight away, exactly as a suspended one does, but its data is still there if the deletion needs undoing.
Fixes
Stock and WhatsApp messages are now isolated per workspace. Two internal uniqueness rules were not scoped to your organization. In practice this meant two workspaces stocking the same catalogue product could conflict, and — for WhatsApp — two workspaces using the same provider could be handed the same message identifier, causing one of them to lose an incoming message as a presumed duplicate. Both are now scoped to the workspace.
WhatsApp messages now find the customer you already have
When someone messages your WhatsApp Business number, Moyo checks whether
that number already belongs to a lead or a contact before creating anything
new. Previously that check only matched when the stored number happened to
be written in exactly the same format WhatsApp sends — no +, no spaces,
no brackets — so in practice it almost never matched. A customer already in
your CRM would arrive as a stranger, and every message from them created
another duplicate lead with a placeholder email address.
Photos, PDFs and voice notes no longer disappear
Only plain text messages used to be recorded. If a customer sent a photo of the product they wanted, a PDF purchase order, a voice note, their location, or tapped a button on one of your templates, nothing was saved at all — no message, no conversation, and for a first-time sender, no lead. Nobody at the business ever found out they had been in touch.
The platform admin console is reachable again
Opening /admin as a Moyo platform administrator bounced back to the login
page, then out to your account profile — the console could not be opened at
all by the role it exists for. Two things were wrong: /admin was being
treated as a workspace page and rewritten to /{workspace}/admin, which does
not exist, and a platform admin has no workspace to put in that slot. Once
past that, the console crashed on a missing notifications provider.
Workspace switching
Opening a different organization from Account → Organizations now actually switches your active workspace instead of silently continuing to operate against your previous one. Creating an additional organization while already a member of one no longer fails.
Session-expiry warning
You’ll now see a warning about 5 minutes before your session expires, with a Stay logged in option to extend it in place — instead of being silently logged out mid-work with no chance to save.
Dashboard resilience
If a single dashboard widget fails to load, it now shows an inline “Failed to load” card with a retry option instead of taking down the entire dashboard.
Lead email lookup
The lead edit form’s email field now offers the same duplicate-detection and auto-fill suggestions (from existing leads and contacts) that the new lead form already had.