67% uncanny-automator

Code Review | Uncanny Automator – Automate everything with the #1 no-code automation and integration plugin

WordPress plugin Uncanny Automator – Automate everything with the #1 no-code automation and integration plugin scored67%from 54 tests.

About plugin

  • Plugin page: uncanny-automator
  • Plugin version: 5.3
  • PHP compatiblity: 7.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.4-6.4.1
  • WordPress version: 6.3.1
  • First release: Apr 14, 2020
  • Latest release: Nov 20, 2023
  • Number of updates: 249
  • Update frequency: every 5.3 days
  • Top authors: uncannyowl (100%)

Code review

54 tests

User reviews

116 reviews

Install metrics

30,000+ active /740,882 total downloads

Benchmarks

Plugin footprint 64% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
This plugin's installer ran successfully

Server metrics [RAM: ▲6.55MB] [CPU: ▲34.63ms] 25% from 4 tests

Analyzing server-side resources used by Uncanny Automator – Automate everything with the #1 no-code automation and integration plugin
Please have a look at the following items
  • RAM: Total memory usage must be kept under 10MB (currently 26.52MB on /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-dashboard)
  • CPU: Total CPU usage should be kept under 500.00ms (currently 3,465.98ms on /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-admin-tools)
  • Extra RAM: Try to keep extra memory usage under 5MB (currently 6.55MB on /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-dashboard)
PageMemory (MB)CPU Time (ms)
Home /8.81 ▲5.3475.70 ▲34.18
Dashboard /wp-admin10.27 ▲6.9293.91 ▲29.03
Posts /wp-admin/edit.php10.33 ▲6.9791.73 ▲44.13
Add New Post /wp-admin/post-new.php13.03 ▲7.14131.04 ▲31.18
Media Library /wp-admin/upload.php10.20 ▲6.9684.41 ▲48.10
Recipe activity details /wp-admin/options.php?page=uncanny-automator-recipe-activity-details26.77186.72
All recipes /wp-admin/edit.php?post_type=uo-recipe26.50166.18
All integrations /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-integrations27.71593.70
Logs /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-admin-logs26.76164.02
Add new /wp-admin/post-new.php?post_type=uo-recipe10.0882.20
Categories /wp-admin/edit-tags.php?taxonomy=recipe_category&post_type=uo-recipe10.1989.89
Status /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-admin-tools28.923,465.98
Tags /wp-admin/edit-tags.php?taxonomy=recipe_tag&post_type=uo-recipe10.1968.58
App integrations /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-app-integrations26.31165.24
Dashboard /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-dashboard26.52167.97

Server storage [IO: ▲14.60MB] [DB: ▲0.18MB] Passed 3 tests

Input-output and database impact of this plugin
This plugin installed successfully
Filesystem: 1,606 new files
Database: 11 new tables, 69 new options
New tables
wp_uap_api_log
wp_uap_recipe_log
wp_uap_api_log_response
wp_uap_tokens_log
wp_uap_action_log
wp_uap_closure_log
wp_uap_recipe_log_meta
wp_uap_trigger_log_meta
wp_uap_trigger_log
wp_uap_action_log_meta
...
New WordPress options
automator_open_ai_secret
uncanny_automator_background_actions
automator_clickup_client
_uncanny_automator_tracking_reminder_date
AUTOMATOR_PLUGIN_VERSION
uap_twilio_connected_user
uncanny_automator_google_sheets_migrated
usage_report_stats
uap_active_campaign_api_key
_uncannyowl_gtw_settings
...

Browser metrics Passed 4 tests

An overview of browser requirements for Uncanny Automator – Automate everything with the #1 no-code automation and integration plugin
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,924 ▲17714.37 ▼0.401.90 ▲0.2442.20 ▼1.40
Dashboard /wp-admin2,306 ▲1295.63 ▲0.0391.13 ▼8.6145.23 ▲2.00
Posts /wp-admin/edit.php2,208 ▲1081.99 ▼0.0139.90 ▲0.5936.51 ▲2.85
Add New Post /wp-admin/post-new.php1,607 ▲8120.94 ▼2.28665.70 ▲49.6755.71 ▲8.84
Media Library /wp-admin/upload.php1,508 ▲1174.22 ▲0.06114.25 ▲15.3147.39 ▲5.66
Recipe activity details /wp-admin/options.php?page=uncanny-automator-recipe-activity-details1,3774.39107.539.27
All recipes /wp-admin/edit.php?post_type=uo-recipe1,7905.00111.1745.31
All integrations /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-integrations10,0284.8475.42124.04
Logs /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-admin-logs1,9604.7759.6931.83
Add new /wp-admin/post-new.php?post_type=uo-recipe2,52810.19159.1950.81
Categories /wp-admin/edit-tags.php?taxonomy=recipe_category&post_type=uo-recipe1,3792.1531.7632.68
Status /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-admin-tools3,0034.8051.9161.60
Tags /wp-admin/edit-tags.php?taxonomy=recipe_tag&post_type=uo-recipe1,3542.1531.4527.79
App integrations /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-app-integrations3,8835.9073.4056.70
Dashboard /wp-admin/edit.php?post_type=uo-recipe&page=uncanny-automator-dashboard2,82811.43285.5386.54

Uninstaller [IO: ▲0.00MB] [DB: ▲0.12MB] 50% from 4 tests

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
It is recommended to fix the following
  • Zombie tables detected upon uninstall: 11 tables
    • wp_uap_api_log
    • wp_uap_closure_log
    • wp_uap_tokens_log
    • wp_uap_action_log
    • wp_uap_api_log_response
    • wp_uap_recipe_log
    • wp_uap_trigger_log
    • wp_uap_action_log_meta
    • wp_uap_closure_log_meta
    • wp_uap_trigger_log_meta
    • ...
  • The uninstall procedure has failed, leaving 69 options in the database
    • zoho_campaigns_credentials
    • automator_trello_token
    • automator_brevo_api_key
    • widget_recent-comments
    • AUTOMATOR_PLUGIN_VERSION
    • automator_linkedin_client
    • automator_facebook_group_token_info
    • _uncanny_automator_tracking_reminder
    • widget_recent-posts
    • uap_automator_free_license_status
    • ...

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
The smoke test was a success, however most plugin functionality was not tested

SRP 0% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following
  • 6× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/uncanny-automator/src/core/views/admin-tools/tab/tools.php
    • > /wp-content/plugins/uncanny-automator/src/core/views/admin-settings/tab/general.php
    • > /wp-content/plugins/uncanny-automator/src/core/views/admin-settings/tab/advanced.php
    • > /wp-content/plugins/uncanny-automator/src/core/views/admin-integrations/archive/collections.php
    • > /wp-content/plugins/uncanny-automator/src/core/views/admin-tools/tab/debug.php
    • > /wp-content/plugins/uncanny-automator/src/core/views/admin-integrations/archive/collection.php
  • 669× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'ChrisKonnertz\\StringCalc\\Symbols\\AbstractSymbol' not found in wp-content/plugins/uncanny-automator/vendor/chriskonnertz/string-calc/src/ChrisKonnertz/StringCalc/Symbols/AbstractSeparator.php:10
    • > PHP Notice
      Trying to get property 'is_pro' of non-object in wp-content/plugins/uncanny-automator/src/core/views/admin-integrations/archive/integration-item.php on line 15
    • > PHP Fatal error
      Trait 'Uncanny_Automator\\Recipe\\Actions' not found in wp-content/plugins/uncanny-automator/src/integrations/integromat/actions/integromat-sendwebhook.php on line 12
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/uncanny-automator/src/core/admin/admin-logs/wp-list-table/class-logs-list-table.php on line 9
    • > PHP Fatal error
      Trait 'Uncanny_Automator\\Recipe\\Actions' not found in wp-content/plugins/uncanny-automator/src/integrations/facebook-groups/actions/facebook-group-publish-post.php on line 9
    • > PHP Fatal error
      Uncaught Error: Class 'Uncanny_Automator\\Settings\\Premium_Integration_Settings' not found in wp-content/plugins/uncanny-automator/src/integrations/twitter/settings/settings-twitter.php:13
    • > PHP Fatal error
      Trait 'Uncanny_Automator\\Recipe\\Integrations' not found in wp-content/plugins/uncanny-automator/src/integrations/optinmonster/add-optinmonster-integration.php on line 8
    • > PHP Fatal error
      Trait 'Uncanny_Automator\\Recipe\\Actions' not found in wp-content/plugins/uncanny-automator/src/integrations/open-ai/actions/open-ai-meta-description-generate.php on line 11
    • > PHP Fatal error
      Uncaught Error: Class 'ChrisKonnertz\\StringCalc\\Symbols\\AbstractConstant' not found in wp-content/plugins/uncanny-automator/vendor/chriskonnertz/string-calc/src/ChrisKonnertz/StringCalc/Symbols/Concrete/Constants/LnPiConstant.php:12
    • > PHP Fatal error
      Trait 'Uncanny_Automator\\Recipe\\Triggers' not found in wp-content/plugins/uncanny-automator/src/integrations/whatsapp/triggers/wa-message-not-delivered-no-optin.php on line 11

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
No browser errors were detected

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 94% from 16 tests

Often overlooked, readme.txt is one of the most important files in your plugin
Please fix the following attributes:
  • Tags: There are too many tags (12 tag instead of maximum 10)
Please take inspiration from this readme.txt

uncanny-automator/uncanny-automator.php 92% from 13 tests

The entry point to "Uncanny Automator – Automate everything with the #1 no-code automation and integration plugin" version 5.3 is a PHP file that has certain tags in its header comment area
Please take the time to fix the following:
  • Description: The description should be shorter than 140 characters (currently 147 characters long)

Code Analysis 97% from 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Everything looks great! No dangerous files found in this plugin142,059 lines of code in 1,518 files:
LanguageFilesBlank linesComment linesLines of code
PHP1,31440,26055,988136,664
CSS19549772,103
JavaScript354997012,061
Markdown21910633
SVG14400423
JSON300174
XML1001

PHP code 50% from 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
These items need your attention
  • Please reduce cyclomatic complexity of methods to less than 100 (currently 137)
Cyclomatic complexity
Average complexity per logical line of code0.35
Average class complexity12.75
▷ Minimum class complexity1.00
▷ Maximum class complexity290.00
Average method complexity3.06
▷ Minimum method complexity1.00
▷ Maximum method complexity137.00
Code structure
Namespaces71
Interfaces6
Traits24
Classes1,131
▷ Abstract classes201.77%
▷ Concrete classes1,11198.23%
▷ Final classes151.35%
Methods6,684
▷ Static methods2443.65%
▷ Public methods5,85587.60%
▷ Protected methods5297.91%
▷ Private methods3004.49%
Functions187
▷ Named functions7137.97%
▷ Anonymous functions11662.03%
Constants315
▷ Global constants226.98%
▷ Class constants29393.02%
▷ Public constants293100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
14 compressed PNG files occupy 0.17MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
src/assets/backend/dist/img/multiple-triggers@2x.png6.29KB6.43KB0.00%
src/assets/backend/dist/img/delay-or-schedule-actions-landscape@2x.png8.05KB8.29KB0.00%
src/assets/backend/dist/img/multiple-actions@2x.png6.16KB6.33KB0.00%
src/integrations/slack/settings/assets/slack-avatar@2x.png6.79KB3.17KB▼ 53.37%
src/assets/backend/dist/img/multiple-triggers-landscape@2x.png8.31KB8.54KB0.00%