Chatwoot Client Portal by ICT Shift
Chatwoot Client Portal by ICT Shift turns your WordPress site into a Chatwoot-backed support portal.
Built by ICT Shift.
Give clients a familiar, branded support area inside WordPress while your team continues working in Chatwoot.
Ideal for businesses that want to:
- Let logged-in users view and reply to support tickets without leaving your website
- Offer contact-style intake pages for non-logged-in visitors
- Keep omnichannel conversations centralized in Chatwoot inboxes (email, livechat, WhatsApp, and more)
- Sync useful customer context from WordPress and commerce plugins into Chatwoot contact records
For help with Chatwoot setup, self-hosting, or hosting guidance, you can contact ICT Shift at https://www.ictshift.com/. Plugin support is also available in the WordPress.org support forum.
Features:
- Ticket list and detail shortcodes
- Dedicated new-ticket shortcode/form
- Reply support with optional attachments
- Ticket status display and update flow
- Floating livechat widget + embedded chat modes
- Logged-in user livechat identity (
setUser) with optional identity validation (identifier_hash) - Contact sync to Chatwoot from WordPress profile, WooCommerce, and FluentCart (best effort)
- Multi-inbox filtering support
- Webhook-based synchronization support
- Translation-ready text domain
Shortcodes:
[ictss_support_tickets]– ticket list view (+ New Ticket button)[ictss_support_ticket]– ticket conversation detail view (?ictss_ticket_id=)[ictss_support_new_ticket]– dedicated new ticket form[ictss_support_live_chat_full][ictss_support_live_chat_box]
Ticket list shortcode
[ictss_support_tickets]
Shows the ticket list only and includes the “+ New Ticket” header button.
Optional ticket list attributes:
new_ticket_url– override the “+ New Ticket” button URLticket_detail_url– override ticket detail page URL
Example:
[ictss_support_tickets new_ticket_url="https://example.com/new-ticket" ticket_detail_url="https://example.com/ticket-details"]
Ticket detail shortcode
[ictss_support_ticket]
Shows a selected ticket conversation using ?ictss_ticket_id= and includes a “Back to My Tickets” button.
Optional ticket detail attributes:
tickets_url– override the back-to-list button URLshow_unassigned_assignee="yes|no"(defaultno) – whenyes, always show Assigned asUnassignedif no agent is set
New ticket shortcode
[ictss_support_new_ticket]
Optional new ticket attributes:
show_attachments="yes|no"(defaultyes)show_priority="yes|no"(defaultno)inbox_id– override the Chatwoot inbox used for ticket creationmail_to– override mail transport recipient(s) for this page onlyrequire_login="yes|no"(defaultyes) – set tonofor public/contact intake pagestickets_url– override the “Back to My Tickets” button URL after successful submitdebug_console="yes|no"(defaultno) – for admins, logs submit diagnostics to browser console (helpful for mail transport troubleshooting)
Examples:
- Support intake:
[ictss_support_new_ticket show_attachments="yes" show_priority="yes"] - Contact intake (public form):
[ictss_support_new_ticket show_attachments="no" show_priority="no" require_login="no"]
When require_login="no", the form is available to non-logged-in visitors. Enable hCaptcha in plugin settings for public intake protection.
Recommended page setup:
- My Tickets page:
[ictss_support_tickets]and[ictss_support_ticket](can be the same page) - New Ticket page:
[ictss_support_new_ticket](can also be a separate page)
Optional URL overrides:
- Ticket list:
new_ticket_url,ticket_detail_url - Ticket detail:
tickets_url(back to list button) - New ticket:
tickets_url(back to list button after successful submit)
After submit, users are informed that a new ticket can take a few minutes to appear in the ticket list.
Theme compatibility notes:
- Supported compatibility targets: Astra, Divi, BeTheme, and default WordPress themes.
- BeTheme compatibility includes field/button normalization for the new-ticket form (including public contact intake pages).
- Divi compatibility includes suppression of inherited hover pseudo-icons on ICTSS buttons in WooCommerce-themed contexts.
External Services
This plugin relies on external services for support portal functionality and optional anti-bot verification.
Chatwoot
This plugin connects to a Chatwoot instance to provide support ticket, livechat, contact sync, and webhook functionality. The Chatwoot base URL is configured by the site owner in plugin settings and can point to either a self-hosted Chatwoot server or the Chatwoot cloud service.
- What it is: Chatwoot is an open-source customer support platform. This plugin uses the Chatwoot REST API to sync contacts, create tickets, post replies, and receive webhook events.
- Data sent: contact identity and profile data (name, email, phone, optional custom attributes), conversation and ticket metadata, message content, and optional file attachments.
- When data is sent: when loading the livechat widget/embed, creating support tickets, replying to tickets, syncing contacts, loading debug/API diagnostics, and processing webhook events.
- Browser storage: when the livechat widget or embed is enabled, Chatwoot and optional identity/session-reset flows may use browser cookies and local/session storage to maintain chat session state.
- Service URL: Determined by the Base URL configured in plugin settings (e.g. https://app.chatwoot.com/ for Chatwoot cloud, or a custom domain for self-hosted deployments).
If using Chatwoot cloud (app.chatwoot.com):
- Terms of service: https://www.chatwoot.com/terms-of-service
- Privacy policy: https://www.chatwoot.com/privacy-policy
If using a self-hosted Chatwoot instance:
- The data controller is the operator of that server. The site owner is responsible for ensuring appropriate terms and privacy policies are in place for their own Chatwoot deployment. Chatwoot’s privacy policy and terms of service do not automatically apply to self-hosted instances.
- Chatwoot is open-source (MIT licensed): https://github.com/chatwoot/chatwoot
hCaptcha (optional)
This plugin optionally integrates hCaptcha for anti-spam/bot protection on public ticket and contact intake forms.
- What it is: hCaptcha is a third-party CAPTCHA service. It is only loaded when hCaptcha is explicitly enabled in plugin settings.
- Data sent: a challenge response token and visitor IP address (
remoteip) for server-side verification, and the hCaptcha widget JavaScript for browser-side challenge rendering. - When data is sent: only when hCaptcha is enabled in plugin settings AND a visitor submits a public form that requires CAPTCHA verification.
- Service URL: https://www.hcaptcha.com/
- Terms of service: https://www.hcaptcha.com/terms.html
- Privacy policy: https://www.hcaptcha.com/privacy.html
Site owners are responsible for obtaining any consent required in their jurisdiction before enabling external-service features.
