Skip to content

This release adds 5 notable features for engineering teams evaluating rollout.

βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’

✓ No known CVEs patched in this version

Topics

agentic-ai agentic-chat-marketing llm marketing marketing-automation nextjs
+5 more
omnichannel postgresql redis sales typescript

Affected surfaces

auth rbac

Summary

AI summary

Broad release touches πŸ› Bug Fixes, ✨ New Features, feat, and fix.

Full changelog

What's Changed

✨ New Features

  • feat: update chat widget by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/475
  • feat: Organization settings by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/449
  • feat: add user quota by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/494
  • feat: Email template by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/489
  • feat: remove mcp server by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/496
  • feat(platform): add configurable storage URL for CDN and whitelabel support by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/500
  • feat(cli,mcp-server): dynamic tool generation from public OpenAPI spec by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/490
  • feat(manage): add SaaS portal nav to manage sidebar with dev proxy by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/501
  • feat(ai): implement ai generate image by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/342
  • feat: update email by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/459
  • feat: E-commerce products by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/413
  • feat: broadcast subscribe/unsubscribe step handlers by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/485
  • feat(api/v1): workspace token auth improvements and core APIs by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/444
  • feat: Qr Code and Landing page by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/510
  • feat: AI file support epub, ptt, pttx extension by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/516
  • feat(mac): monthly active contact tracking, billing rollups, and analytics by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/365
  • feat: Add tiktok channel by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/497
  • feat: implement integration claude AI and deepseek AI by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/517
  • feat(channels): add encrypted pending-auth and page-select step for Facebook OAuth by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/531
  • feat(coexist): refactor bulk import, add comprehensive test suites, and fix template handlers by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/533
  • feat(admin): add platform admin screen with scoped platform credentials by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/534
  • feat(tag-sync): two-way tag sync with Messenger labels and Zalo OA tags by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/537
  • feat(cli): rename to chatbotx, add nested command groups, update MCP tool naming by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/519
  • feat(worker): add scheduled job to refresh zalo oauth tokens daily by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/552
  • feat: add menu gemini delete history by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/556
  • feat(upload): support workspace-less uploads for platform branding assets by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/560
  • feat: implement integration mailchimp by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/555
  • feat(database): add Cloudflare hostname fields to CustomDomain schema by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/565
  • feat(messenger): add create message template dialog and action by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/566
  • feat(flows): add flow version history and restore by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/572
  • feat(contacts): add avatar to contact name cell in contacts table by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/573
  • feat: add project AI agents, skills, and commands by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/579
  • feat(instagram): migrate to Instagram Business Login API by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/559
  • feat(tiktok): register tiktok channel in ui filters and inbox config by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/581
  • feat: implement integration drip by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/577
  • feat(tiktok): add tiktok to inbox select card by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/592
  • feat: implelemt integration mooseend by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/591
  • feat: implement integration klaviyo by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/594
  • feat(tenancy): first-class Tenant table for white-label isolation by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/587
  • feat: apply sharding for ai message by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/593
  • feat: implement integration activecampaign by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/598
  • feat: implement integration get-response email by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/599
  • feat(tenancy): white-label OAuth broker for per-tenant social login by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/601
  • feat(tenancy): route provider webhooks through the broker host by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/602
  • feat(whatsapp): connect via Facebook OAuth dialog through broker by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/607
  • feat(messenger): Facebook post comments β€” receive, reply, edit, delete, like/hide by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/618
  • feat(builder): show plan and usage quotas in sidebar (cloud-only) by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/609
  • feat(ai-openrouter): implement integration openrouter by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/616
  • feat(instagram): Instagram post comments by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/624
  • feat(auth): force password change for reseller-provisioned accounts by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/627
  • feat: Add Messenger action Set User Persistent Menu by @hoangle398 in https://github.com/ChatbotXIO/ChatbotX/pull/614
  • feat(manage): add reseller portal sidebar to cloud-edition manage zone by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/641
  • feat(user-quota): stamp bootstrap trial row on cloud sign-up, per-tenant default plan by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/645
  • feat(quota): add selectedTrialPlanId to UserQuota by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/654
  • feat(messenger): add enable/disable composer flow actions by @hoangle398 in https://github.com/ChatbotXIO/ChatbotX/pull/643
  • feat(instagram): enforce messaging window with HUMAN_AGENT tag fallback by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/662
  • feat(enterprise): add tenant help items management by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/666

πŸ› Bug Fixes

  • fix: send mail by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/469
  • fix: snapshot for analytics by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/474
  • fix(whatsapp): detect OAuth revoked tokens in error mapper by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/477
  • fix(whatsapp): use /ref- prefix for inbox referral links by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/478
  • fix: detect hostname by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/480
  • fix: coerce min/max to number in generateCode step schema by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/487
  • fix: improve dark mode theme colors and UI consistency by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/492
  • fix: Add success/error states to Auto Assign Conversation Step by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/483
  • fix: get-data-from-json step β€” states support, safe JSON parse, and proper return types by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/484
  • fix(custom-fields): add customFieldValueKey option and memoize field transform by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/486
  • fix: use Web Crypto randomUUID in email-topic stats repo by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/522
  • fix(database): resolve migration snapshot chain prevIds and mac tables snapshot by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/523
  • fix: wrong migration path for QRCode by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/528
  • fix(channels): centralize duplicate connection detection across all integrations by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/530
  • fix: add message shard bootstrap script by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/529
  • fix(flows): replace useEffect with triggerValueChange for smtp from address sync by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/532
  • fix: temp remove pdf-parse-new by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/536
  • fix(messenger): add pages_utility_messaging scope to OAuth by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/539
  • fix: tag upserts respect partial unique index by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/541
  • fix: specify partial-index predicate on tag upserts by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/542
  • refactor: streamline tag and channel label sync handlers by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/543
  • refactor(worker): use consolidated inbox label handler by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/544
  • fix(builder): use Promise.allSettled when creating messages by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/545
  • fix(worker): import pdf-parse-new parser entry directly by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/535
  • fix(redis): degrade gracefully on cache errors and memoize connections by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/548
  • fix(flows): correct flow upload path param and pass workspaceId by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/549
  • fix(worker): use igId column for instagram integration lookup by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/551
  • fix(flows): correct email template variable and add tiktok integration field by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/554
  • fix(messenger): improve outgoing message handling and channel send behavior by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/557
  • fix(filesystem): expose uploadFileFromUrl from main entry point by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/558
  • fix(auth,mail): fix email link hostnames and enable subject template substitution by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/564
  • fix: clone messenger template by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/567
  • fix: refresh template list after creating by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/569
  • fix(conversations): refresh inbox activity sorting by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/561
  • fix: update import and and lib hash by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/570
  • fix(events): add events worker by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/571
  • fix(tiktok): store and use conversation_id as recipient for outgoing messages by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/574
  • fix: keep messages loading reliably when database has issues by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/576
  • fix(tiktok): throw ChannelError when sourceConversationId is missing by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/575
  • fix(broadcast): reliably send broadcasts to all recipients by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/590
  • fix: ai-file error with provider deepseek by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/604
  • fix(ai-mcp-server): use inline http transport and show tool descriptions by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/608
  • fix(builder): keep header helpers server-only by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/611
  • fix(ai-function): handle output message and trigger flow by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/612
  • fix(ai-flow): ai flow message duplicate by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/615
  • fix(database): refactor conversation uniqueness and expand message schema by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/620
  • fix(database): refactor conversation uniqueness and expand message schema by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/622
  • fix(message): ensure Message and Attachment queries work correctly with sharding by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/613
  • fix(builder): point pricing links to canonical /portal/pricing path by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/625
  • fix(database): backfill and maintain InboxContactStat totalContacts by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/629
  • fix: improve new message display in inbox by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/630
  • fix: support secure public links by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/631
  • fix(worker): auto-discover worker roster in docker entrypoint by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/632
  • fix(docker): emit seed runner as CommonJS to fix dynamic require crash by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/636
  • fix(docker): harden builder image build and seed/entrypoint runtime by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/637
  • fix(ai): handle ai message response with image url by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/639
  • fix(auth): use tenant policy links by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/646
  • fix(coexists): using user quota instead of workspace usage by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/651
  • fix(webchat): prevent duplicate messages after send by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/657
  • fix: stop messages repeating in flows by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/658
  • fix(auth): re-home white-label verification redirects onto branded host by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/659
  • fix: stop messages from repeating in flows by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/660
  • fix(tenancy): resolve integration webhooks via broker host for white-label by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/671
  • fix(integrations): harden channel schemas, add null guards, and register TikTok webhook by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/672

⚑ Improvements

  • refactor: update logo for workspace by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/499
  • refactor(flow-config): replace base64+JSON button payload with compact colon format by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/595
  • refactor(integrations): replace Node.js crypto with Web Crypto API in webhook handlers by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/628
  • refactor(quota): make UserQuota the single source of truth, drop TenantQuotaUsage by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/649

πŸ”§ Internal / Chore

  • chore(database): remove duplicate magic/ref-link stat migrations by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/580
  • chore(broadcast,sequence): drop unused tracking columns by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/583
  • chore(broadcast,sequence): apply partition tables for broadcast and sequence by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/585
  • chore(redis): imcrement redis timeout by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/605
  • chore(database): move message sharding migration into drizzle chain by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/621
  • chore: update files by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/623
  • docs: add contributing guide by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/634
  • chore(deps): enable dependabot npm updates for pnpm workspace by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/644
  • docs(readme): refresh links, providers, and repo layout by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/647
  • chore: change chatbotx-hero in readme by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/650

New Contributors

  • @phongmaker made their first contribution in https://github.com/ChatbotXIO/ChatbotX/pull/502
  • @TrinhDuyHai made their first contribution in https://github.com/ChatbotXIO/ChatbotX/pull/597

Full Changelog: https://github.com/ChatbotXIO/ChatbotX/compare/v0.2.5...v1.0.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track ChatbotX, an open-source alternative to ManyChat

Get notified when new releases ship.

Sign up free

About ChatbotX, an open-source alternative to ManyChat

All releases β†’

Related context

Earlier breaking changes

  • v0.2.5 Self‑hosted deployments must set ENCRYPTION_KEY environment variable and run migration and credential backfill scripts.
  • v0.2.5 Provider credentials now encrypted at rest using AES-256-GCM in new OrganizationCredential table.

Beta — feedback welcome: [email protected]