{"id":354638,"date":"2026-08-19T07:04:18","date_gmt":"2026-08-19T07:04:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/abency-connector\/"},"modified":"2026-08-19T07:03:47","modified_gmt":"2026-08-19T07:03:47","slug":"abency-connector","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/abency-connector\/","author":18448816,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.0.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Abency Connector","header_author":"Abency","header_description":"Connects this site to Abency so AI-proposed edits to already-published content wait for human approval here, inside WordPress, before going live.","assets_banners_color":"","last_updated":"2026-08-19 07:03:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/abency.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":25,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"guillemginer","date":"2026-08-19 07:03:47"}},"upgrade_notice":{"0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3653998,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3653998,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2353,8196,247763,8485,186],"plugin_category":[55],"plugin_contributors":[259994],"plugin_business_model":[],"class_list":["post-354638","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-approval","plugin_tags-content-workflow","plugin_tags-editorial","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-guillemginer","plugin_committers-guillemginer"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/abency-connector\/assets\/icon-128x128.png?rev=3653998","icon_2x":"https:\/\/ps.w.org\/abency-connector\/assets\/icon-256x256.png?rev=3653998","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Abency Connector links your WordPress site to your agency's Abency workspace\n(a hosted platform for digital agencies). It is a companion plugin: it does\nnothing on its own and requires an Abency account to be useful.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ul>\n<li>New content and drafts are created directly in WordPress (<code>wp_insert_post<\/code>).\nNothing is published automatically \u2014 new items always start as drafts.<\/li>\n<li>Changes to <strong>already-published<\/strong> content are never applied live. Abency sends\nthem here as <strong>pending proposals<\/strong>. A site editor reviews each proposal,\npreviews it on the real theme, and then approves or rejects it from wp-admin.<\/li>\n<li>On approval, the change is merged onto the <strong>original<\/strong> post \u2014 same ID, same\nURL, same menus. Nothing is duplicated and no permalinks change.<\/li>\n<\/ul>\n\n<p><strong>Why a plugin instead of the REST API<\/strong><\/p>\n\n<p>Many managed hosts strip the <code>Authorization<\/code> header before it reaches PHP, which\nbreaks WordPress core REST authentication and Application Passwords. This plugin\nuses its own <code>X-Abency-Token<\/code> header (issued during pairing) so it keeps working\non those hosts, and it writes content directly with WordPress core functions \u2014 no\nApplication Password required.<\/p>\n\n<p><strong>Authentication<\/strong><\/p>\n\n<p>Pairing uses a one-time code generated in Abency. No passwords are shared: Abency\nmints two scoped tokens during pairing (one to authorize incoming requests to this\nplugin, one for this plugin's status callbacks back to Abency). You can unpair at\nany time from the plugin screen, which deletes the stored tokens.<\/p>\n\n<p><strong>SEO<\/strong><\/p>\n\n<p>When Yoast SEO or Rank Math is active, the plugin reads and writes the SEO title,\nmeta description and focus keyword for the posts it manages.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to <strong>Abency<\/strong>, a third-party SaaS platform, and does not\nfunction without an Abency account. It communicates with the Abency instance whose\nURL you enter when pairing (for the hosted service this is <code>https:\/\/app.abency.com<\/code>;\nagencies may self-host at a different URL, which you provide during pairing).<\/p>\n\n<p>The plugin talks to Abency in these cases:<\/p>\n\n<ul>\n<li><strong>When you pair the plugin<\/strong> (you click \"Pair\"): it sends the pairing code you\nentered and this site's URL (<code>home_url()<\/code>) to Abency's pairing endpoint, and\nreceives back the two scoped access tokens plus the paired brand identifier.<\/li>\n<li><strong>When you approve or reject a proposal<\/strong>: it sends the resulting status\n(<code>applied<\/code> or <code>rejected<\/code>) and an optional note to the callback URL that Abency\nprovided during pairing.<\/li>\n<\/ul>\n\n<p>The plugin does <strong>not<\/strong> send any site data to Abency in the background or on a\nschedule. Incoming requests from Abency (creating drafts, sending proposals) are\ninitiated by Abency and authenticated with the token issued during pairing.<\/p>\n\n<p>Please review Abency's privacy policy and legal notice before pairing:<\/p>\n\n<ul>\n<li>Privacy Policy: https:\/\/abency.com\/privacy-policy<\/li>\n<li>Legal notice: https:\/\/abency.com\/aviso-legal<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>abency-connector<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the\nzip from <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, then activate it.<\/li>\n<li>In Abency, open <strong>Brand \u2192 Integrations \u2192 WordPress \u2192 Pair plugin<\/strong> to generate a\none-time pairing code.<\/li>\n<li>In WordPress, open the <strong>Abency<\/strong> menu, enter your Abency URL and the pairing\ncode, and click <strong>Pair<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20publish%20content%20automatically%3F\"><h3>Does this plugin publish content automatically?<\/h3><\/dt>\n<dd><p>No. New content is always created as a draft, and changes to published content are\nheld as proposals that a human approves inside WordPress before they go live.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20abency%20account%3F\"><h3>Do I need an Abency account?<\/h3><\/dt>\n<dd><p>Yes. This is a companion plugin for the Abency platform and has no standalone\nfunctionality.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20wordpress%20application%20password%3F\"><h3>Do I need a WordPress Application Password?<\/h3><\/dt>\n<dd><p>No. The plugin runs inside WordPress and writes content with core functions, so no\nApplication Password or extra server configuration is required.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20approve%20a%20proposal%3F\"><h3>What happens when I approve a proposal?<\/h3><\/dt>\n<dd><p>The proposed fields are merged onto the original published post (same ID, URL and\nmenus). The change is not a new post and no permalink changes.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disconnect%3F\"><h3>How do I disconnect?<\/h3><\/dt>\n<dd><p>Open the Abency menu and click <strong>Unpair<\/strong>. This deletes the stored tokens. To\nremove all data, delete the plugin \u2014 its options and the proposals table are\nremoved on uninstall.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: pairing, REST endpoints for content and terms, Yoast\/Rank Math\nSEO bridge, proposal receiver, pending queue with theme preview, approve\/merge\nand reject with status callback.<\/li>\n<\/ul>","raw_excerpt":"Connect your site to Abency so AI-proposed edits to already-published content wait for a human to preview and approve here, inside WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354638","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=354638"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/guillemginer"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354638"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354638"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354638"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354638"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354638"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}