The licensing meter
Per authenticated user or per anonymous page view, plus capacity add-ons. The cost scales with your success instead of the value you get, and it renews every year.
WBS Dataverse Connect is a Dataverse integration for WordPress: publish Microsoft Dataverse records as pages, lists and detail views, capture submissions straight back into your tables, and keep every record exactly where it already lives. No portal license. No second copy of your data.
Already running in production on this site. See it live.
The uncomfortable part
The product works. The economics are the problem. The moment a portal gets real traffic or real users, per-user and per-page-view licensing turns a simple public site into a line item nobody wants to defend at renewal. Your records already live in Dataverse. The front end does not have to cost like this.
Why teams are moving
Portals solved a real problem in their day. For most public-facing sites, the trade-offs no longer make sense.
Per authenticated user or per anonymous page view, plus capacity add-ons. The cost scales with your success instead of the value you get, and it renews every year.
Liquid templates and a fixed component model. Real design, real interactivity and modern tooling end up fighting the platform instead of running on it.
A portal is another surface to secure, patch, monitor and buy capacity for, separate from the website your marketing team already owns and knows.
Portals are not built like a modern marketing site. Control over markup, page speed and your SEO stack is limited, exactly where public traffic is won or lost.
The front end and the data are welded together. Moving off means rebuilding, so the invoice keeps arriving because leaving is made expensive.
The theme, the plugins, the skills and the workflow already exist. A portal asks a capable team to start over on an unfamiliar platform.
The solution
WBS Dataverse Connect reads and writes Dataverse from WordPress through the official Web API, on the server, with an app registration you control. The records never leave Dataverse.
Tables, views and columns you choose render as WordPress collection lists and detail pages, cached for speed. It reads the same records your model-driven apps use, in real time.
Enquiries, applications and requests submitted on the site land straight in your Dataverse tables as records, with a honeypot and rate limiting on every write. No inbox in the middle.
Shortcodes drop collections and detail views into any page. Templates are override-able, so the output is your brand, your markup and your SEO stack. Nothing new to relearn.
What it does
Everything a public-facing Dataverse site needs, delivered as clean WordPress you own end to end.
Point the plugin at a table and a view, choose the columns, and render the rows as a responsive list with filtering and paging. A published-only filter keeps drafts and internal records off the public site.
The list reads live, so what your team edits in Dataverse is what visitors see.
See a collectionA record opens on its own detail view, complete with related rows, images from storage and a clean, shareable URL. The same page renders the grid and the single record, so links stay short and the site stays simple.
See a live detail pageA form on the site writes a new row straight into the table you nominate, related to the record it came from. Every write is protected by a honeypot and rate limiting, and the data goes to Dataverse, not to someone's inbox.
Enquiries, applications, registrations and requests all follow the same path.
See write-backThe plugin authenticates server-side with an Entra app registration and a Dataverse application user scoped to least privilege. Secrets live in your WordPress configuration or a vault, never in a page or a script. Reads are limited to the tables and columns you expose, and writes go only where you allow.
See the connectionReads are cached with a short time to live, so pages serve quickly and the Web API is not hit on every visit. If Dataverse is briefly unreachable, the site keeps serving rather than showing an error, and it catches up on the next refresh.
Talk performanceOutput runs through WordPress templates you can override in your theme, so the markup, the classes and the design are yours. It sits inside the site your team already builds and ships, with the same header, footer, navigation and SEO tooling.
See it themedHow it works
Connect once, model what goes public, drop a shortcode, and ship. The data stays in Dataverse the whole way.
An Entra app registration and a Dataverse application user with least-privilege access. Credentials go in your WordPress config or a vault.
Point the plugin at the tables, views and columns you want on the web. Public-only filters keep everything else private.
Add a collection or detail shortcode to any page. Override the templates in your theme so the markup and design are yours.
Pages are cached and SEO-ready, and the site fails open if Dataverse is briefly unreachable. Edits in Dataverse show up on the next refresh.
Side by side
You stay on the Microsoft stack. Dataverse remains the single source of truth. Only the front end changes.
Not a slide
This is running in production on the site you are reading now. Property listings are published straight from Dataverse through this plugin, and enquiries are written back as records. No portal license involved.
See it liveGet started
If your team runs a Power Pages portal, we will map what it does, price the WordPress and Dataverse alternative, and show you the migration path on your own tables. If you are starting fresh, we will stand up the first collection with you.
Built and supported by WOODS Business Solutions. Runs entirely inside your Microsoft tenant and your WordPress site.