{"id":389581,"date":"2026-10-20T20:18:21","date_gmt":"2026-10-20T20:18:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pcio-vis-with-unitii\/"},"modified":"2026-10-20T20:18:11","modified_gmt":"2026-10-20T20:18:11","slug":"pcio-vis-with-unitii","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/pcio-vis-with-unitii\/","author":20981457,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"PCIO VIS With Unitii","header_author":"PCIO","header_description":"Synchronises volunteers, events and shifts from the Unitii volunteer platform into PCIO VIS Member Event. Volunteers become members of a Vis workgroup with the vis_volunteer capability, and Unitii shifts are shown in the crew list of the matching Vis event.","assets_banners_color":"000000","last_updated":"2026-10-20 20:18:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.pcio.dk\/","header_author_uri":"https:\/\/www.pcio.dk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"pcio","date":"2026-10-20 20:18:11","revision":3757416}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3757415,"resolution":"128x128","location":"assets","locale":"","width":1254,"height":1254},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3757415,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3757415,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3757415,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3757415,"resolution":"1","location":"assets","locale":"","width":2212,"height":2145},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3757415,"resolution":"2","location":"assets","locale":"","width":2536,"height":1123}},"screenshots":{"1":"WP Admin Vis menu page to configure the import of Unitii events, volunteers and shifts","2":"The Vis cron sync jobs has gotten a new Unitii importer job"}},"plugin_section":[],"plugin_tags":[4567,266666,1558,287791,65258],"plugin_category":[59],"plugin_contributors":[265152],"plugin_business_model":[],"class_list":["post-389581","plugin","type-plugin","status-publish","hentry","plugin_tags-cron","plugin_tags-shifts","plugin_tags-sync","plugin_tags-unitii","plugin_tags-volunteers","plugin_category-utilities-and-tools","plugin_contributors-pcio","plugin_committers-pcio"],"banners":{"banner":"https:\/\/ps.w.org\/pcio-vis-with-unitii\/assets\/banner-772x250.png?rev=3757415","banner_2x":"https:\/\/ps.w.org\/pcio-vis-with-unitii\/assets\/banner-1544x500.png?rev=3757415","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pcio-vis-with-unitii\/assets\/icon-128x128.png?rev=3757415","icon_2x":"https:\/\/ps.w.org\/pcio-vis-with-unitii\/assets\/icon-256x256.png?rev=3757415","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pcio-vis-with-unitii\/assets\/screenshot-1.jpg?rev=3757415","caption":"WP Admin Vis menu page to configure the import of Unitii events, volunteers and shifts"},{"src":"https:\/\/ps.w.org\/pcio-vis-with-unitii\/assets\/screenshot-2.jpg?rev=3757415","caption":"The Vis cron sync jobs has gotten a new Unitii importer job"}],"raw_content":"<!--section=description-->\n<p>PCIO VIS With Unitii is an extension for the PCIO VIS Member Event plugin. A single cron job reads volunteers, events and shifts from the Unitii volunteer platform and:<\/p>\n\n<ul>\n<li>matches Unitii volunteers to Vis members by email address (with a configurable table of exceptions),<\/li>\n<li>creates Vis members for new volunteers that have worked a shift, and grants them the vis_volunteer capability,<\/li>\n<li>keeps the selected Vis workgroup 1:1 with the Unitii volunteers,<\/li>\n<li>finds the Vis event of the selected event type on each Unitii shift day, or creates it as a copy of a template event,<\/li>\n<li>adds each Unitii shift to the event crew list with the selected crew role, and updates or removes it when the shift changes in Unitii.<\/li>\n<\/ul>\n\n<p>The sync covers the period from three months ago to nine months ahead. If the Unitii API cannot be reached, the run is aborted without changing anything in Vis.<\/p>\n\n<p>This plugin requires the PCIO VIS Member Event core plugin to be installed and active.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Unitii volunteer platform (https:\/\/unitii.dk) to import your organisation's volunteers, events and shifts. Requests are only made when you have entered Unitii credentials on the plugin's settings page, and only when the sync cron job runs.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li><strong>Login:<\/strong> the configured Unitii username and password are sent to the configured API URL (default <code>https:\/\/api.unitii.dk\/graphql<\/code>) to obtain an access token.<\/li>\n<li><strong>Volunteers and shifts:<\/strong> a query for the sync period is sent with the access token. The response (volunteer names, email addresses, phone numbers, worked hours, events and shifts) is stored locally and used to update Vis members, the workgroup and event crew lists.<\/li>\n<\/ul>\n\n<p>No other data from your WordPress site is sent to Unitii. Please ensure your own privacy policy covers this integration. Unitii terms and privacy information: https:\/\/unitii.dk\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the <strong>PCIO VIS Member Event<\/strong> core plugin first.<\/li>\n<li>Upload the <code>pcio-vis-with-unitii<\/code> directory to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin in <strong>Plugins<\/strong> in the WordPress admin.<\/li>\n<li>Configure the connection and Vis mapping under <strong>Vis \u2192 Unitii<\/strong>.<\/li>\n<li>Enable the \"Unitii sync\" job under <strong>Vis \u2192 Sync<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20often%20does%20the%20sync%20run%3F\"><h3>How often does the sync run?<\/h3><\/dt>\n<dd><p>On the schedule configured for the \"Unitii sync\" job under Vis \u2192 Sync. The job is disabled until you enable it.<\/p><\/dd>\n<dt id=\"which%20volunteers%20become%20vis%20members%3F\"><h3>Which volunteers become Vis members?<\/h3><\/dt>\n<dd><p>Volunteers whose email address (or mapped exception) matches an existing Vis member are always linked. New Vis members are created only for volunteers who have worked hours and have at least one shift.<\/p><\/dd>\n<dt id=\"are%20manually%20added%20crew%20assignments%20touched%3F\"><h3>Are manually added crew assignments touched?<\/h3><\/dt>\n<dd><p>No. The sync only updates and removes the crew rows it created (or adopted) for Unitii shifts.<\/p><\/dd>\n<dt id=\"what%20is%20copied%20from%20the%20template%20event%3F\"><h3>What is copied from the template event?<\/h3><\/dt>\n<dd><p>Title, description, resume, the \"publish on homepage\" flag and the event type. The start, end, get-in and door opening times are moved to the new day with the same time of day, so an end after midnight or a get-in the evening before stays relative to the start. Requires PCIO VIS Member Event 1.6.0 or later for get-in and door opening times.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Synchronises volunteers, events and shifts from Unitii into PCIO VIS Member Event via a scheduled cron job.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/389581","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=389581"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pcio"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=389581"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=389581"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=389581"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=389581"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=389581"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=389581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}