Canny.io Helper
The {CODICTS} Canny.io Helper plugin provides a WordPress shortcode that embeds a Canny.io feedback board widget on your website with automatic Single Sign-On (SSO) for logged-in WordPress users. When a logged-in user views the page, they are automatically authenticated in the Canny widget using their WordPress profile data (name, email, avatar) — no separate Canny account needed. The plugin handles all SDK loading and JWT token generation automatically.
Requirements
| Requirement | Details |
|---|---|
| Canny.io Account | A Canny.io account with at least one board created |
| Canny SSO Key | A private SSO key from your Canny.io account settings |
| Canny Board Token | The board token for the specific board you want to embed |
No child theme required. No theme dependency. This plugin works with any WordPress theme. It does not override any template files.
Installation & Activation
Start by downloading the plugin from the Downloads page on your dashboard on the CoDicts website.
After downloading, install and activate the plugin in WordPress by navigating to “Plugins” > “Add New” > “Upload Plugin” and selecting the downloaded zip file. Click “Install Now” and then “Activate”.
After activation, navigate to “Canny.io Helper” in the WordPress admin sidebar to enter your SSO key.
Key Features
| Feature | Description |
|---|---|
| Shortcode Embedding | Embed any Canny.io feedback board on any WordPress page or post using a simple shortcode. |
| Automatic SSO | Logged-in WordPress users are automatically authenticated in the Canny widget — no separate Canny account needed. |
| User Data Sync | The user’s WordPress display name, email, avatar, and user ID are passed to Canny automatically. |
| Theme Support | Choose between light, dark, or auto (follows system preference) themes for the embedded widget. |
| Multiple Boards | Embed multiple Canny boards on different pages (or the same page) using separate shortcodes. |
| Zero JavaScript Coding | All Canny SDK loading and initialization is handled automatically by the shortcode. |
How It Works
1. You enter your Canny.io Private SSO Key in the plugin settings.
2. You place the shortcode on any page with your Canny board token.
3. When a logged-in WordPress user visits the page, the plugin automatically generates a secure token containing their profile data (name, email, avatar, user ID) and passes it to the Canny widget.
4. The Canny feedback board appears on the page with the user pre-authenticated — they can immediately submit feedback, vote on features, and comment without creating a separate Canny account.
Important: The Canny widget is only displayed to logged-in WordPress users. Anonymous (logged-out) visitors will see nothing where the shortcode is placed.
Finding Your Canny.io Credentials
You need two pieces of information from your Canny.io account:
| Credential | Where to Find It |
|---|---|
| Private SSO Key | Log in to your Canny.io admin panel → Settings → SSO. Copy the private key. See the Canny SSO documentation for details. |
| Board Token | In your Canny admin panel, navigate to the board you want to embed and copy the board token from the board settings or embed instructions. |
Settings Page
Navigate to “Canny.io Helper” in the WordPress admin sidebar.
| Setting | Description |
|---|---|
| Private SSO Key | Enter the private SSO key from your Canny.io account. This key is used to securely sign the authentication token. Required for the widget to function. |
After entering your SSO key, click “Save Changes.”
Shortcode Usage
Basic Usage
[codicts-canny-io-helper board_token="YOUR_BOARD_TOKEN"]
Place this shortcode on any post or page where you want the Canny.io feedback board to appear.
Attributes
| Attribute | Required | Default | Description |
|---|---|---|---|
| board_token | Yes | (none) | The board token from your Canny.io account. Without this, the shortcode renders nothing. |
| theme | No | light | The visual theme of the widget. Options: light, dark, auto. |
| base_path | No | (empty) | The base path for Canny’s client-side routing. Set this to the page path where the board is embedded (e.g., /feedback). |
Full Example
[codicts-canny-io-helper board_token="xxxxxxxxxxxxxxxxx" theme="dark" base_path="/feedback"]
Theme Options
| Theme | Description |
|---|---|
| light | Light background with dark text (default). |
| dark | Dark background with light text. |
| auto | Follows the user’s system/browser theme preference. |
When the Shortcode Renders Nothing
The shortcode will not display the Canny widget if any of the following are true:
| Condition | Reason |
|---|---|
| No board_token attribute | The shortcode needs to know which Canny board to display. |
| No SSO key configured | The Private SSO Key must be entered in the plugin settings. |
| Visitor is not logged in | The widget only renders for authenticated WordPress users. |
Single Sign-On (SSO)
The plugin’s core feature is automatic SSO between WordPress and Canny.io. When a logged-in user views a page with the shortcode, the plugin generates a secure token containing their profile data and passes it to Canny.
User Data Sent to Canny.io
| Data | Source |
|---|---|
| Display Name | The user’s WordPress display name. |
| The user’s WordPress email address. | |
| User ID | The WordPress user ID (used to link the Canny identity to the WordPress account). |
| Avatar | The user’s WordPress avatar URL (typically their Gravatar). |
This data is securely signed using your Private SSO Key and transmitted to Canny.io as a JWT (JSON Web Token). Canny verifies the token and authenticates the user automatically.
Example — Embedding a Feedback Board
1. Activate the plugin.
2. Navigate to “Canny.io Helper” in the admin sidebar. Enter your Canny.io Private SSO Key and save.
3. Create a new WordPress page (e.g., “Feedback”). Add the shortcode:
[codicts-canny-io-helper board_token="YOUR_BOARD_TOKEN"]
4. Publish the page. When a logged-in user visits the page, the Canny feedback board appears with the user automatically signed in using their WordPress profile. They can submit feedback, vote on features, and comment immediately.
Example — Dark Theme with Base Path
1. Create a page at the URL path /feedback.
2. Add the shortcode with the dark theme and base path:
[codicts-canny-io-helper board_token="YOUR_BOARD_TOKEN" theme="dark" base_path="/feedback"]
3. The Canny board renders in dark mode. The base_path ensures Canny’s internal navigation links work correctly relative to the /feedback page path.
Example — Multiple Boards on Different Pages
1. Create a “Feature Requests” page with:
[codicts-canny-io-helper board_token="FEATURE_BOARD_TOKEN"]
2. Create a “Bug Reports” page with:
[codicts-canny-io-helper board_token="BUG_BOARD_TOKEN"]
Each page displays a different Canny board, both with automatic SSO. You can also place multiple shortcodes on the same page with different board tokens to show multiple boards.
Frequently Asked Questions
Does this require a child theme?
No. The plugin does not override any template files. It works with any WordPress theme.
Does this require WooCommerce or any specific theme?
No. The plugin works with any WordPress installation. It only requires a Canny.io account with an SSO key and board token.
Can anonymous (logged-out) visitors see the Canny board?
No. The plugin generates a secure token only for logged-in WordPress users. If no user is logged in, the shortcode outputs nothing. The Canny widget is exclusively available to authenticated users.
What user data is shared with Canny.io?
Four pieces of data: the user’s WordPress display name, email address, user ID, and avatar URL. This data is securely signed and transmitted to Canny for authentication.
Can I embed multiple Canny boards?
Yes. Use multiple shortcodes with different board_token values on the same page or different pages. The Canny SDK is only loaded once regardless of how many boards are embedded.
What theme options are available?
Three options: light (default, light background), dark (dark background), and auto (follows the user’s system/browser preference).
What does the base_path attribute do?
The base_path configures Canny’s client-side routing. If your Canny board is embedded at https://example.com/feedback, set base_path="/feedback" so that Canny correctly handles internal navigation links within the widget.
Is there a settings page?
Yes. Navigate to “Canny.io Helper” in the WordPress admin sidebar. The settings page has one field: the Private SSO Key from your Canny.io account.
Does the plugin create any database tables?
No. The plugin stores its settings (the SSO key) in a single entry in the WordPress options table. No custom database tables are created and no post-level data is stored.
Do I need to install any additional libraries or run composer?
No. The required JWT library is bundled with the plugin. Everything works out of the box after activation.
What happens when the plugin is deactivated?
The Canny shortcode stops rendering. The raw shortcode text will be visible on pages where it was placed. The stored SSO key in the options table is preserved. Reactivating the plugin restores full functionality.
Troubleshooting
Canny Widget Not Appearing on the Page
| Cause | Solution |
|---|---|
| No SSO key configured | Navigate to Canny.io Helper in the admin sidebar and enter your Canny.io Private SSO Key. Save changes. |
| Missing board_token attribute | The shortcode requires a board_token attribute. Ensure your shortcode includes it: [codicts-canny-io-helper board_token="YOUR_TOKEN"]. |
| Not logged in | The widget only renders for logged-in WordPress users. Log in and revisit the page. |
| PHP version too low | The bundled JWT library requires PHP 7.4 or higher. Check your server’s PHP version and upgrade if needed. |
User Not Authenticated in the Canny Widget
| Cause | Solution |
|---|---|
| Wrong SSO key | Verify you entered the correct Private SSO key from Canny.io → Settings → SSO. Make sure it’s the private key, not the public one. |
| SSO not enabled in Canny | In your Canny.io admin panel, go to Settings → SSO and ensure SSO is enabled for your account. |
Wrong Board Displayed
| Cause | Solution |
|---|---|
| Wrong board token | Each Canny board has its own unique token. Verify you’re using the correct board token from the board’s settings in your Canny admin panel. |
Navigation Links Not Working Inside the Widget
| Cause | Solution |
|---|---|
| Missing base_path | If the Canny board is embedded on a subpage (e.g., /feedback), add the base_path attribute matching the page path: base_path="/feedback". |
For further support, visit codicts.com or contact us at support@codicts.com.