{"id":340878,"date":"2026-07-18T18:08:48","date_gmt":"2026-07-18T18:08:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/push-notifications-for-trigv\/"},"modified":"2026-07-18T20:30:34","modified_gmt":"2026-07-18T20:30:34","slug":"push-notifications-for-trigv","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/push-notifications-for-trigv\/","author":3803,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.2","stable_tag":"2.0.2","tested":"7.0.2","requires":"6.8","requires_php":"8.3","requires_plugins":null,"header_name":"Push Notifications for Trigv","header_author":"Per Soderlind","header_description":"Send WordPress events as push notifications via Trigv. Choose which events to watch, map them to Trigv channels, and dispatch asynchronously.","assets_banners_color":"ffffff","last_updated":"2026-07-18 20:30:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/soderlind\/push-notifications-for-trigv","header_author_uri":"https:\/\/soderlind.no","rating":0,"author_block_rating":0,"active_installs":0,"downloads":47,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.2":{"tag":"2.0.2","author":"PerS","date":"2026-07-18 20:30:34"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3612923,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3613670,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3613670,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3612980,"resolution":"1","location":"assets","locale":"","width":2004,"height":942},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3612980,"resolution":"2","location":"assets","locale":"","width":2004,"height":942},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3612980,"resolution":"3","location":"assets","locale":"","width":2004,"height":942}},"screenshots":{"1":"Connect your Trigv account by entering an API key on the admin screen.","2":"Enable the Triggers you want to watch and map each one to a Trigv channel and level.","3":"Log of dispatched notifications, with status and delivery info from Trigv."}},"plugin_section":[],"plugin_tags":[1486,4906,7290,272232,15439],"plugin_category":[40],"plugin_contributors":[78884],"plugin_business_model":[],"class_list":["post-340878","plugin","type-plugin","status-publish","hentry","plugin_tags-events","plugin_tags-notifications","plugin_tags-push","plugin_tags-trigv","plugin_tags-webhook","plugin_category-calendar-and-events","plugin_contributors-pers","plugin_committers-pers"],"banners":{"banner":"https:\/\/ps.w.org\/push-notifications-for-trigv\/assets\/banner-772x250.png?rev=3613670","banner_2x":"https:\/\/ps.w.org\/push-notifications-for-trigv\/assets\/banner-1544x500.png?rev=3613670","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/push-notifications-for-trigv\/assets\/icon.svg?rev=3612923","icon":"https:\/\/ps.w.org\/push-notifications-for-trigv\/assets\/icon.svg?rev=3612923","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/push-notifications-for-trigv\/assets\/screenshot-1.png?rev=3612980","caption":"Connect your Trigv account by entering an API key on the admin screen."},{"src":"https:\/\/ps.w.org\/push-notifications-for-trigv\/assets\/screenshot-2.png?rev=3612980","caption":"Enable the Triggers you want to watch and map each one to a Trigv channel and level."},{"src":"https:\/\/ps.w.org\/push-notifications-for-trigv\/assets\/screenshot-3.png?rev=3612980","caption":"Log of dispatched notifications, with status and delivery info from Trigv."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/trigv.com\">Trigv<\/a> watches the WordPress events (Triggers) you choose and dispatches them as\npush notifications through the Trigv API. Dispatch happens asynchronously in the\nbackground, with retries, so your site stays fast.<\/p>\n\n<ul>\n<li>Pick from a curated catalog of WordPress Triggers.<\/li>\n<li>Map each Trigger to a Trigv channel and level, with an optional custom title\/description template.<\/li>\n<li>Fire your own notifications from code with <code>do_action( 'trigv_send', $args )<\/code>.<\/li>\n<li>Shape or veto any notification with the <code>trigv_dispatch_args<\/code> and <code>trigv_pre_dispatch<\/code> filters.<\/li>\n<li>Add-ons can register more Triggers via the <code>trigv_triggers<\/code> filter.<\/li>\n<\/ul>\n\n<h4>Developer API<\/h4>\n\n<p>Full developer guide (custom Triggers, filters, REST API, examples): <a href=\"https:\/\/github.com\/soderlind\/push-notifications-for-trigv\/blob\/main\/DEVELOPER.md\">DEVELOPER.md<\/a><\/p>\n\n<h4>Configuration<\/h4>\n\n<p>Set the API key on the Trigv admin screen, or define it in <code>wp-config.php<\/code>:<\/p>\n\n<pre><code>define( 'TRIGV_API_KEY', 'trgv_xxxx_yyyy' );\n<\/code><\/pre>\n\n<h4>External services<\/h4>\n\n<p>This plugin connects to Trigv, a third-party push-notification service, to deliver the WordPress events you choose as notifications on your devices.<\/p>\n\n<p>When a Trigger you have enabled fires \u2014 or you send a test notification, or you call <code>do_action( 'trigv_send', ... )<\/code> \u2014 the plugin sends an HTTPS request to the Trigv API at https:\/\/api.trigv.com. Each request includes:<\/p>\n\n<ul>\n<li>the notification channel, title, and (optionally) description, level, event type, delivery urgency, image URL, and an idempotency key;<\/li>\n<li>your Trigv API key, sent as an <code>Authorization<\/code> request header;<\/li>\n<li>a <code>User-Agent<\/code> request header identifying the plugin and its version.<\/li>\n<\/ul>\n\n<p>No data is sent until you enter a Trigv API key and enable at least one Trigger (or trigger a manual\/test send). Trigv stores only event metadata such as timestamps, delivery status, and usage counts; notification content is delivered to your devices and is not retained on Trigv servers.<\/p>\n\n<p>Service provider: Webtions O\u00dc (dba Trigv).\nTerms of Service: https:\/\/trigv.com\/terms\nPrivacy Policy: https:\/\/trigv.com\/legal\/privacy-policy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to the <code>\/wp-content\/plugins\/<\/code> directory, or install it directly from the WordPress.org Plugin Directory via <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li><p>Go to the <strong>Trigv<\/strong> admin screen and enter your Trigv API key. Alternatively, define it in <code>wp-config.php<\/code>:<\/p>\n\n<p>define( 'TRIGV_API_KEY', 'trgv_xxxx_yyyy' );<\/p><\/li>\n<li><p>Enable the Triggers you want to watch and map each one to a Trigv channel and level.<\/p><\/li>\n<li>(Optional) Send a test notification from the admin screen to confirm delivery to your devices.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20trigv%20account%3F\"><h3>Do I need a Trigv account?<\/h3><\/dt>\n<dd><p>Yes. You need a Trigv account and an API key to deliver notifications. Sign up at https:\/\/trigv.com.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20my%20api%20key%3F\"><h3>Where do I get my API key?<\/h3><\/dt>\n<dd><p>Create an API key in your Trigv account, then enter it on the Trigv admin screen or define <code>TRIGV_API_KEY<\/code> in <code>wp-config.php<\/code>.<\/p><\/dd>\n<dt id=\"does%20dispatching%20notifications%20slow%20down%20my%20site%3F\"><h3>Does dispatching notifications slow down my site?<\/h3><\/dt>\n<dd><p>No. Notifications are dispatched asynchronously in the background using Action Scheduler, with automatic retries, so page loads stay fast.<\/p><\/dd>\n<dt id=\"can%20i%20send%20my%20own%20custom%20notifications%20from%20code%3F\"><h3>Can I send my own custom notifications from code?<\/h3><\/dt>\n<dd><p>Yes. Fire a notification from anywhere with <code>do_action( 'trigv_send', $args )<\/code>. See the Developer API section above and the <a href=\"https:\/\/github.com\/soderlind\/push-notifications-for-trigv\/blob\/main\/DEVELOPER.md\">full developer guide<\/a>.<\/p><\/dd>\n<dt id=\"can%20i%20modify%20or%20block%20a%20notification%20before%20it%20is%20sent%3F\"><h3>Can I modify or block a notification before it is sent?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>trigv_dispatch_args<\/code> filter to reshape the data, or the <code>trigv_pre_dispatch<\/code> filter to veto a dispatch. Add-ons can register more Triggers via the <code>trigv_triggers<\/code> filter.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20trigv%3F\"><h3>What data is sent to Trigv?<\/h3><\/dt>\n<dd><p>Only the notification content you configure (channel, title, and optional description, level, event type, and image), along with your API key and a User-Agent header. Nothing is sent until you enter an API key and enable a Trigger or send a test. See the \"External services\" section above for full details.<\/p><\/dd>\n<dt id=\"why%20aren%27t%20my%20notifications%20being%20delivered%3F\"><h3>Why aren't my notifications being delivered?<\/h3><\/dt>\n<dd><p>Check that you have entered a valid API key, enabled at least one Trigger, and that WP-Cron (or a real cron) is running so Action Scheduler can process the background queue. Sending a test notification from the admin screen helps confirm your setup.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Add a GitHub Actions workflow to sync WordPress.org plugin assets on release.<\/li>\n<li>Add a plugin icon.<\/li>\n<li>Add Installation and Frequently Asked Questions sections to the readme.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Update the bundled Action Scheduler library to 4.0.0.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Prepared for the WordPress.org Plugin Directory: renamed to \"Push Notifications for Trigv\" with text domain <code>push-notifications-for-trigv<\/code>.<\/li>\n<li>Added an \"External services\" disclosure documenting the data sent to the Trigv API.<\/li>\n<li>Removed the self-hosted GitHub updater; updates now come from WordPress.org.<\/li>\n<li>Escaped exception messages and prefixed uninstall globals for coding-standards compliance.<\/li>\n<li>Internal: moved the plugin's PHP namespace to <code>Soderlind\\Trigv<\/code> to avoid clashing with the bundled trigv-php SDK.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Send events using the official trigv-php SDK for request building, validation, and typed error handling.<\/li>\n<li>Route SDK requests through the WordPress HTTP API via a new <code>WpHttpClient<\/code> adapter, preserving proxy\/SSL config and the <code>trigv_request_headers<\/code> filter. Asynchronous retries are unchanged.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Add a <code>User-Agent<\/code> identifier header on requests to Trigv, plus a <code>trigv_request_headers<\/code> filter to add or override request headers.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Internal: introduce an immutable <code>Notification<\/code> value object; the Trigv HTTP client is now transport-only.<\/li>\n<li>Internal: split per-Trigger configuration into a dedicated module, separate from the Trigger catalog.<\/li>\n<li>No functional changes for existing sites.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Add a \"Page published\" Trigger.<\/li>\n<li>Add the <code>trigv_post_published_types<\/code> filter to control which post types the \"Post published\" Trigger watches (defaults to posts only).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix REST route error (\"No route was found\") when saving settings \u2014 now uses WordPress core's apiFetch configuration with full REST paths.<\/li>\n<li>Show saved-key state in the API key field (label and masked placeholder).<\/li>\n<li>Pre-fill Trigger title and description fields with their default templates.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Send WordPress events as push notifications via Trigv.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/340878","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=340878"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pers"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=340878"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=340878"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=340878"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=340878"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=340878"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=340878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}