{"id":43,"date":"2026-07-13T11:04:33","date_gmt":"2026-07-13T05:34:33","guid":{"rendered":"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/"},"modified":"2026-07-13T11:05:52","modified_gmt":"2026-07-13T05:35:52","slug":"trinity-forms","status":"publish","type":"page","link":"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/","title":{"rendered":"Trinity Forms"},"content":{"rendered":"<p><a href=\"https:\/\/jnkplugins.com\/trinity-forms\/\" class=\"jnk-linkweave-auto\">Trinity Forms<\/a> is a block-native WordPress form builder: you build forms with the block editor you already know, submissions are stored natively, and you can export them to CSV. This page covers how it works and the hooks available for extending it.<\/p>\n<h2>Building forms<\/h2>\n<p>Forms are composed from blocks in the WordPress editor rather than a separate drag-and-drop canvas, so fields, layout, and content live in the same editing surface as the rest of your site. Base-tier features include conditional logic, multi-step forms, and payments (Stripe and PayPal) \u2014 capabilities many builders reserve for paid add-ons.<\/p>\n<h2>Entry storage<\/h2>\n<p>Every submission is stored in Trinity Forms&#8217; own tables and listed in the admin, where you can view, filter, and export entries to CSV out of the box. Because storage is native, there&#8217;s no separate add-on to install just to keep a record of what people submitted.<\/p>\n<h2>The submission lifecycle &amp; hooks<\/h2>\n<p>Trinity Forms fires standard WordPress actions at each stage of a submission, so you can run custom code \u2014 send data elsewhere, add validation, notify a channel \u2014 without modifying the plugin:<\/p>\n<pre><code>do_action( 'trinity_forms_before_submit', ... );      \/\/ before a submission is processed\ndo_action( 'trinity_forms_validation_failed', ... );  \/\/ when validation rejects a submission\ndo_action( 'trinity_forms_entry_created', ... );      \/\/ after the entry row is stored\ndo_action( 'trinity_forms_entry_completed', ... );    \/\/ after processing finishes\ndo_action( 'trinity_forms_payment_succeeded', ... );  \/\/ after a payment clears<\/code><\/pre>\n<h2>Example: forward completed entries to a webhook<\/h2>\n<pre><code>add_action( 'trinity_forms_entry_completed', function ( $entry ) {\n    wp_remote_post( 'https:\/\/example.com\/hook', [\n        'headers' =&gt; [ 'Content-Type' =&gt; 'application\/json' ],\n        'body'    =&gt; wp_json_encode( $entry ),\n    ] );\n}, 10, 1 );<\/code><\/pre>\n<p>Use <code>trinity_forms_entry_created<\/code> if you need to act the moment the row is stored (even if later steps fail), or <code>trinity_forms_entry_completed<\/code> to act only after the whole submission \u2014 including any payment \u2014 has finished.<\/p>\n<h2>Pairs well with EntryVault<\/h2>\n<p>Trinity Forms stores and exports entries on its own. If you run several form plugins and want <em>all<\/em> of their submissions in one Kanban CRM, <a href=\"\/blog\/docs\/entryvault\/\">EntryVault<\/a> captures Trinity Forms alongside ten other builders.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trinity Forms is a block-native WordPress form builder: you build forms with the block editor you already know, submissions are stored natively, and you can export \u2026<\/p>\n","protected":false},"author":0,"featured_media":0,"parent":5,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-43","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Trinity Forms - JnK Plugins Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trinity Forms - JnK Plugins Blog\" \/>\n<meta property=\"og:description\" content=\"Trinity Forms is a block-native WordPress form builder: you build forms with the block editor you already know, submissions are stored natively, and you can export \u2026\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/\" \/>\n<meta property=\"og:site_name\" content=\"JnK Plugins Blog\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-13T05:35:52+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/docs\\\/trinity-forms\\\/\",\"url\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/docs\\\/trinity-forms\\\/\",\"name\":\"Trinity Forms - JnK Plugins Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-07-13T05:34:33+00:00\",\"dateModified\":\"2026-07-13T05:35:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/docs\\\/trinity-forms\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/docs\\\/trinity-forms\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/docs\\\/trinity-forms\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/docs\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Trinity Forms\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/\",\"name\":\"JnK Plugins Blog\",\"description\":\"Guides, comparisons, and tutorials for our WordPress plugins\",\"publisher\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#organization\",\"name\":\"JnK Plugins\",\"url\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/jnkplugins-jk-logo-512.png\",\"contentUrl\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/jnkplugins-jk-logo-512.png\",\"width\":512,\"height\":512,\"caption\":\"JnK Plugins\"},\"image\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.youtube.com\\\/@JnKPlugins\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/jnkplugins\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Trinity Forms - JnK Plugins Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/","og_locale":"en_US","og_type":"article","og_title":"Trinity Forms - JnK Plugins Blog","og_description":"Trinity Forms is a block-native WordPress form builder: you build forms with the block editor you already know, submissions are stored natively, and you can export \u2026","og_url":"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/","og_site_name":"JnK Plugins Blog","article_modified_time":"2026-07-13T05:35:52+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/","url":"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/","name":"Trinity Forms - JnK Plugins Blog","isPartOf":{"@id":"https:\/\/jnkplugins.com\/blog\/#website"},"datePublished":"2026-07-13T05:34:33+00:00","dateModified":"2026-07-13T05:35:52+00:00","breadcrumb":{"@id":"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jnkplugins.com\/blog\/docs\/trinity-forms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jnkplugins.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/jnkplugins.com\/blog\/docs\/"},{"@type":"ListItem","position":3,"name":"Trinity Forms"}]},{"@type":"WebSite","@id":"https:\/\/jnkplugins.com\/blog\/#website","url":"https:\/\/jnkplugins.com\/blog\/","name":"JnK Plugins Blog","description":"Guides, comparisons, and tutorials for our WordPress plugins","publisher":{"@id":"https:\/\/jnkplugins.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jnkplugins.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jnkplugins.com\/blog\/#organization","name":"JnK Plugins","url":"https:\/\/jnkplugins.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jnkplugins.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/jnkplugins.com\/blog\/wp-content\/uploads\/2026\/08\/jnkplugins-jk-logo-512.png","contentUrl":"https:\/\/jnkplugins.com\/blog\/wp-content\/uploads\/2026\/08\/jnkplugins-jk-logo-512.png","width":512,"height":512,"caption":"JnK Plugins"},"image":{"@id":"https:\/\/jnkplugins.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.youtube.com\/@JnKPlugins","https:\/\/www.linkedin.com\/company\/jnkplugins\/"]}]}},"_links":{"self":[{"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/pages\/43","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":1,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/pages\/43\/revisions"}],"predecessor-version":[{"id":52,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/pages\/43\/revisions\/52"}],"up":[{"embeddable":true,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/pages\/5"}],"wp:attachment":[{"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/media?parent=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}