{"id":381208,"date":"2026-10-08T21:39:48","date_gmt":"2026-10-08T21:39:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/custumu\/"},"modified":"2026-10-08T21:39:18","modified_gmt":"2026-10-08T21:39:18","slug":"custumu","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/custumu\/","author":23580212,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.3","requires":"6.0","requires_php":"","requires_plugins":null,"header_name":"Custumu","header_author":"Custumu","header_description":"Adds the Custumu chat widget to your public pages. Paste your public key and the assistant answers visitors using your business information.","assets_banners_color":"","last_updated":"2026-10-08 21:39:18","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":75,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"custumu","date":"2026-10-08 21:39:18","revision":3735587}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[5707],"plugin_category":[41],"plugin_contributors":[285164],"plugin_business_model":[],"class_list":["post-381208","plugin","type-plugin","status-publish","hentry","plugin_tags-chat","plugin_category-communication","plugin_contributors-custumu","plugin_committers-custumu"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/custumu.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Custumu shows the chat widget on the public pages of your site. After you activate the plugin, open Settings \u2192 Custumu and paste the public key from your dashboard.<\/p>\n\n<p>The chat script in <code>assets\/widget.js<\/code> is a compiled file. The human-readable source that produces it is included in the <code>source<\/code> directory of this plugin. The comment at the top of <code>assets\/widget.js<\/code> names each bundled library, its version, its license, and its public repository.<\/p>\n\n<h3>Source code<\/h3>\n\n<pre><code>assets\/widget.js is built with Vite from the files in `source`. The widget entry is `source\/widget`. The shared chat components it imports are `source\/src\/components` and `source\/src\/lib`.\n<\/code><\/pre>\n\n<p>To regenerate <code>assets\/widget.js<\/code>, <code>assets\/emojibase<\/code>, and <code>source<\/code> from the Custumu project:<\/p>\n\n<ol>\n<li>Install Node.js and npm.<\/li>\n<li>Run <code>npm install<\/code>.<\/li>\n<li>Run <code>npm run build:widget<\/code>.<\/li>\n<\/ol>\n\n<p>That command builds the widget and copies <code>assets\/widget.js<\/code>, the emoji data, and the human-readable source into this plugin.<\/p>\n\n<p>Third-party code included in <code>assets\/widget.js<\/code>:<\/p>\n\n<ul>\n<li>React and React DOM \u2014 MIT \u2014 https:\/\/github.com\/react\/react<\/li>\n<li>frimousse \u2014 MIT \u2014 https:\/\/github.com\/liveblocks\/frimousse<\/li>\n<li>lucide-react \u2014 ISC \u2014 https:\/\/github.com\/lucide-icons\/lucide<\/li>\n<li>react-markdown \u2014 MIT \u2014 https:\/\/github.com\/remarkjs\/react-markdown<\/li>\n<li>remark-gfm \u2014 MIT \u2014 https:\/\/github.com\/remarkjs\/remark-gfm<\/li>\n<li>remark-breaks \u2014 MIT \u2014 https:\/\/github.com\/remarkjs\/remark-breaks<\/li>\n<\/ul>\n\n<p>Emoji names and keywords come from Emojibase \u2014 MIT \u2014 https:\/\/github.com\/milesj\/emojibase<\/p>\n\n<p>Those files are stored in this plugin at <code>assets\/emojibase\/es\/data.json<\/code> and <code>assets\/emojibase\/es\/messages.json<\/code>. The chat loads them from the plugin directory.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Custumu API at https:\/\/api.custumu.com to show the chat on the public pages of the site and to let visitors talk with the business assistant.<\/p>\n\n<p>It sends the site's public key when the page loads, to fetch the widget settings (name, color, welcome message, and logo address).<\/p>\n\n<p>When a visitor opens the chat, it sends that public key and a visitor identifier stored in the browser. When the visitor writes, it sends the message text, the address of the page, and the visitor's timezone. When the visitor opens an earlier conversation, it sends the public key, the visitor identifier, and the conversation identifier. When the visitor rates a closed conversation, it sends the score and an optional comment.<\/p>\n\n<p>The logo, when the business has set one, is the image address returned by this API.<\/p>\n\n<p>This service is provided by \"Custumu\": <a href=\"https:\/\/custumu.com\/terminos-de-servicio.html\">terms of use<\/a>, <a href=\"https:\/\/custumu.com\/politica-de-privacidad.html\">privacy policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Custumu.<\/li>\n<li>Open Settings \u2192 Custumu.<\/li>\n<li>Paste the public key and click Save.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Document the Custumu API, the chat source, and the bundled libraries.<\/li>\n<li>Load emoji data from the plugin instead of a remote host.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Adds the Custumu chat widget to your public pages. Paste your public key and the assistant answers visitors using your business information.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/381208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=381208"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/custumu"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=381208"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=381208"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=381208"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=381208"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=381208"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=381208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}