{"id":10878,"date":"2026-05-21T23:30:14","date_gmt":"2026-05-21T15:30:14","guid":{"rendered":"https:\/\/aeosub.com\/chatwoot-client-portal-by-ict-shift\/"},"modified":"2026-05-21T23:30:14","modified_gmt":"2026-05-21T15:30:14","slug":"chatwoot-client-portal-by-ict-shift","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/chatwoot-client-portal-by-ict-shift\/","title":{"rendered":"Chatwoot Client Portal by ICT Shift"},"content":{"rendered":"<div class=\"post-img\" style=\"margin-bottom: 25px\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/chatwoot-client-portal-by-ict-shift\/assets\/banner-1544x500.png?rev=3542176\" alt=\"Chatwoot Client Portal by ICT Shift\" style=\"width: 100%;height: auto;border-radius: 12px\"><\/div>\n<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/chatwoot-client-portal-by-ict-shift\/assets\/icon-256x256.png?rev=3542176\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/mtiggelaar\/\" target=\"_blank\" rel=\"noopener\">m.tiggelaar<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v2.0.10<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">5.0 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-21 2:43pm GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/chatwoot-client-portal-by-ict-shift\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Chatwoot-powered customer support portal for WordPress with ticket list\/detail views, new ticket form, livechat widget\/embed, and inbox-based syncing.<\/div>\n<p>Chatwoot Client Portal by ICT Shift turns your WordPress site into a Chatwoot-backed support portal.<\/p>\n<p>Built by ICT Shift (https:\/\/www.ictshift.com).<\/p>\n<p>Features:<\/p>\n<ul>\n<li>Ticket list and detail shortcodes<\/li>\n<li>Dedicated new-ticket shortcode\/form<\/li>\n<li>Reply support with optional attachments<\/li>\n<li>Ticket status display and update flow<\/li>\n<li>Floating livechat widget + embedded chat modes<\/li>\n<li>Logged-in user livechat identity (<code>setUser<\/code>) with optional identity validation (<code>identifier_hash<\/code>)<\/li>\n<li>Contact sync to Chatwoot from WordPress profile, WooCommerce, and FluentCart (best effort)<\/li>\n<li>Multi-inbox filtering support<\/li>\n<li>Webhook-based synchronization support<\/li>\n<li>Translation-ready text domain<\/li>\n<\/ul>\n<p>Shortcodes:<\/p>\n<ul>\n<li><code>[ictss_support_tickets]<\/code> \u2014 ticket list view (+ New Ticket button)<\/li>\n<li><code>[ictss_support_ticket]<\/code> \u2014 ticket conversation detail view (<code>?ictss_ticket_id=<\/code>)<\/li>\n<li><code>[ictss_support_new_ticket]<\/code> \u2014 dedicated new ticket form<\/li>\n<li><code>[ictss_support_live_chat_full]<\/code><\/li>\n<li><code>[ictss_support_live_chat_box]<\/code><\/li>\n<\/ul>\n<h4>Ticket list shortcode<\/h4>\n<pre><code>[ictss_support_tickets]\n<\/code><\/pre>\n<p>Shows the ticket list only and includes the \u201c+ New Ticket\u201d header button.<\/p>\n<p>Optional ticket list attributes:<\/p>\n<ul>\n<li><code>new_ticket_url<\/code> \u2014 override the \u201c+ New Ticket\u201d button URL<\/li>\n<li><code>ticket_detail_url<\/code> \u2014 override ticket detail page URL<\/li>\n<\/ul>\n<p>Example:<\/p>\n<pre><code>[ictss_support_tickets new_ticket_url=\"https:\/\/example.com\/new-ticket\" ticket_detail_url=\"https:\/\/example.com\/ticket-details\"]\n<\/code><\/pre>\n<h4>Ticket detail shortcode<\/h4>\n<pre><code>[ictss_support_ticket]\n<\/code><\/pre>\n<p>Shows a selected ticket conversation using <code>?ictss_ticket_id=<\/code> and includes a \u201cBack to My Tickets\u201d button.<\/p>\n<p>Optional ticket detail attributes:<\/p>\n<ul>\n<li><code>tickets_url<\/code> \u2014 override the back-to-list button URL<\/li>\n<li><code>show_unassigned_assignee=\"yes|no\"<\/code> (default <code>no<\/code>) \u2014 when <code>yes<\/code>, always show Assigned as <code>Unassigned<\/code> if no agent is set<\/li>\n<\/ul>\n<h4>New ticket shortcode<\/h4>\n<pre><code>[ictss_support_new_ticket]\n<\/code><\/pre>\n<p>Optional new ticket attributes:<\/p>\n<ul>\n<li><code>show_attachments=\"yes|no\"<\/code> (default <code>yes<\/code>)<\/li>\n<li><code>show_priority=\"yes|no\"<\/code> (default <code>no<\/code>)<\/li>\n<li><code>inbox_id<\/code> \u2014 override the Chatwoot inbox used for ticket creation<\/li>\n<li><code>mail_to<\/code> \u2014 override mail transport recipient(s) for this page only<\/li>\n<li><code>require_login=\"yes|no\"<\/code> (default <code>yes<\/code>) \u2014 set to <code>no<\/code> for public\/contact intake pages<\/li>\n<li><code>tickets_url<\/code> \u2014 override the \u201cBack to My Tickets\u201d button URL after successful submit<\/li>\n<li><code>debug_console=\"yes|no\"<\/code> (default <code>no<\/code>) \u2014 for admins, logs submit diagnostics to browser console (helpful for mail transport troubleshooting)<\/li>\n<\/ul>\n<p>Examples:<\/p>\n<ul>\n<li>Support intake: <code>[ictss_support_new_ticket show_attachments=\"yes\" show_priority=\"yes\"]<\/code><\/li>\n<li>Contact intake (public form): <code>[ictss_support_new_ticket show_attachments=\"no\" show_priority=\"no\" require_login=\"no\"]<\/code><\/li>\n<\/ul>\n<p>When <code>require_login=\"no\"<\/code>, the form is available to non-logged-in visitors. Enable hCaptcha in plugin settings for public intake protection.<\/p>\n<p>Recommended page setup:<\/p>\n<ul>\n<li><strong>My Tickets<\/strong> page: <code>[ictss_support_tickets]<\/code> and <code>[ictss_support_ticket]<\/code> (can be the same page)<\/li>\n<li><strong>New Ticket<\/strong> page: <code>[ictss_support_new_ticket]<\/code> (can also be a separate page)<\/li>\n<\/ul>\n<p>Optional URL overrides:<\/p>\n<ul>\n<li>Ticket list: <code>new_ticket_url<\/code>, <code>ticket_detail_url<\/code><\/li>\n<li>Ticket detail: <code>tickets_url<\/code> (back to list button)<\/li>\n<li>New ticket: <code>tickets_url<\/code> (back to list button after successful submit)<\/li>\n<\/ul>\n<p>After submit, users are informed that a new ticket can take a few minutes to appear in the ticket list.<\/p>\n<p>Theme compatibility notes:<\/p>\n<ul>\n<li>Supported compatibility targets: Astra, Divi, BeTheme, and default WordPress themes.<\/li>\n<li>BeTheme compatibility includes field\/button normalization for the new-ticket form (including public contact intake pages).<\/li>\n<li>Divi compatibility includes suppression of inherited hover pseudo-icons on ICTSS buttons in WooCommerce-themed contexts.<\/li>\n<\/ul>\n<h3>External Services<\/h3>\n<p>This plugin relies on external services for support portal functionality and optional anti-bot verification.<\/p>\n<h4>Chatwoot<\/h4>\n<p>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.<\/p>\n<ul>\n<li>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.<\/li>\n<li>Data sent: contact identity and profile data (name, email, phone, optional custom attributes), conversation and ticket metadata, message content, and optional file attachments.<\/li>\n<li>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.<\/li>\n<li>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.<\/li>\n<li>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).<\/li>\n<\/ul>\n<p><strong>If using Chatwoot cloud (app.chatwoot.com):<\/strong><\/p>\n<ul>\n<li>Terms of service: https:\/\/www.chatwoot.com\/terms-of-service<\/li>\n<li>Privacy policy: https:\/\/www.chatwoot.com\/privacy-policy<\/li>\n<\/ul>\n<p><strong>If using a self-hosted Chatwoot instance:<\/strong><\/p>\n<ul>\n<li>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&#8217;s privacy policy and terms of service do not automatically apply to self-hosted instances.<\/li>\n<li>Chatwoot is open-source (MIT licensed): https:\/\/github.com\/chatwoot\/chatwoot<\/li>\n<\/ul>\n<h4>hCaptcha (optional)<\/h4>\n<p>This plugin optionally integrates hCaptcha for anti-spam\/bot protection on public ticket and contact intake forms.<\/p>\n<ul>\n<li>What it is: hCaptcha is a third-party CAPTCHA service. It is only loaded when hCaptcha is explicitly enabled in plugin settings.<\/li>\n<li>Data sent: a challenge response token and visitor IP address (<code>remoteip<\/code>) for server-side verification, and the hCaptcha widget JavaScript for browser-side challenge rendering.<\/li>\n<li>When data is sent: only when hCaptcha is enabled in plugin settings AND a visitor submits a public form that requires CAPTCHA verification.<\/li>\n<li>Service URL: https:\/\/www.hcaptcha.com\/<\/li>\n<li>Terms of service: https:\/\/www.hcaptcha.com\/terms.html<\/li>\n<li>Privacy policy: https:\/\/www.hcaptcha.com\/privacy.html<\/li>\n<\/ul>\n<p>Site owners are responsible for obtaining any consent required in their jurisdiction before enabling external-service features.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chatwoot-powered customer support portal for WordPress with ticket list\/detail views, new ticket form, livechat widget\/embed, and inbox-based syncing.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[1649,1650,1651,665,1070,555],"class_list":["post-10878","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-chatwoot","tag-helpdesk","tag-livechat","tag-support","tag-tickets","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10878","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=10878"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10878\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=10878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=10878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=10878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}