WBS Connect for Dataverse turns a WordPress site into a front end for your own Microsoft Dataverse (or Dynamics 365) environment. Records from any Dataverse table render as card grids and detail pages via shortcodes, and site forms create records directly in Dataverse. The data stays in Dataverse; o
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.0 and PHP 8.0.
SourceWordPress plugins · Oct 17, 2026
01 / Source details
About this tool.
WBS Connect for Dataverse turns a WordPress site into a front end for your own Microsoft Dataverse (or Dynamics 365) environment. Records from any Dataverse table render as card grids and detail pages via shortcodes, and site forms create records directly in Dataverse. The data stays in Dataverse; only the presentation layer lives in WordPress.
Features
Collections. Publish any Dataverse table by naming the table, the columns and an optional status filter. No code required; developers can also register collections via a filter.
Grid and detail on one page. [wbsdvc_collection] renders the card grid, and the same page renders the detail view when a record is selected, so links stay short.
Search, filters, sort and paging. Offer visitors a search box, filter dropdowns and sort choices per collection, and page through long tables with Previous and Next links that keep the current state. Column labels come from the table’s display names in Dataverse.
Block editor. Dataverse Collection, Dataverse Record and Dataverse Form blocks wrap the shortcodes with a dropdown of your configured collections and forms and a live preview.
Images and files. Show a Dataverse Image column on cards and detail pages and offer File columns as downloads, served through your own site so nothing points at Dataverse directly.
Clean detail URLs. Point a collection at a slug column and detail links use readable slugs ( ?dvc=my-record ) instead of raw record ids. Id links keep working as a fallback.
Write-back forms. Build a form as a list of typed fields (text, email, phone, multi-line, number, money, date, date and time, choice, multi-select choice, yes/no, lookup, hidden). Values are validated and converted on the server, table metadata fills in labels, options and required levels, and submissions create records in Dataverse, optionally related to the record the form was shown on. Every submission is nonce-verified, honeypot-checked and rate limited; Cloudflare Turnstile can be switched on per form.
Edit mode. An update-mode form prefills from the record the page shows and saves changes back to it, limited to records visible through the bound collection.
Webhooks. Post a signed JSON message to URLs of your choice when a form creates a record and when the Dataverse connection fails or recovers, for Power Automate flows or Teams alerts.
Server-side authentication. The plugin signs in with an Entra ID app registration (client-credentials flow) and a Dataverse application user with a least-privilege role. Credentials never reach the browser; wp-config.php constants are the recommended home for them.
Caching and fail-open. Reads are cached with a configurable TTL. When Dataverse is unreachable, pages show a friendly notice instead of failing; the site never goes blank.
Display-ready values. Choices, money, dates and lookups arrive formatted by Dataverse itself, in the environment’s locale.
Themeable. All output runs through templates a theme can override, so markup, classes and SEO belong to the site owner.
Documentation
Setup walkthrough, every collection and form setting, shortcode and block attributes, webhooks, health alerts, the hook reference and a guide for moving from other Dataverse plugins: https://woods.consulting/docs-wbs-connect/
Requirements
PHP 8.0 or newer, WordPress 6.0 or newer.
Access to a working Microsoft Dataverse or Dynamics 365 environment is required. Without one the plugin has no function. Free developer environments are available from Microsoft: https://learn.microsoft.com/power-platform/developer/plan
External services
This plugin connects to two external services, both operated by Microsoft and both belonging to you, the site owner, plus one optional third-party service you switch on per form. Data flows only between your WordPress host and your own Microsoft tenant’s endpoints; nothing is sent to WOODS Business Solutions or any other third party, and the plugin contains no telemetry.
01Microsoft Entra ID token endpoint ( login.microsoftonline.com ). The plugin requests OAuth2 access tokens here using the tenant id, client id and client secret you configure. This happens whenever a cached token has expired.
02Your Microsoft Dataverse environment (the *.dynamics.com URL you configure, for example https://yourorg.crm4.dynamics.com ). The plugin reads the records you chose to publish and creates the records your visitors submit through configured forms (typically a name, email address, phone number and message). This happens on page views of pages using the shortcodes (subject to caching) and on form submissions.
03Cloudflare Turnstile (optional). When you switch on the Turnstile toggle for a form and enter a site key and secret key, that form loads the Turnstile widget script from challenges.cloudflare.com in the visitor’s browser and, on submit, your site sends the challenge token together with the visitor’s IP address to Cloudflare’s siteverify endpoint to confirm the challenge passed. Forms without the toggle never contact Cloudflare. Terms: https://www.cloudflare.com/website-terms/ , privacy: https://www.cloudflare.com/privacypolicy/
Webhooks you configure yourself post to the URLs you enter and nowhere else.
The Microsoft services are governed by Microsoft’s terms and privacy statement:
WOODS Business Solutions is an independent company and is not affiliated with, endorsed by or sponsored by Microsoft. Dataverse, Dynamics 365 and Microsoft are trademarks of the Microsoft group of companies, used here solely to describe compatibility.
02 / Source details
Getting started.
01Install and activate the plugin.
02In the Entra admin center, create an app registration (no redirect URI needed) and a client secret.
03In the Power Platform admin center, create an application user for that app registration in your environment and assign it a least-privilege security role: Read on the tables you publish, Create on the tables your forms write to, Write on tables used by update-mode forms. Do not use System Administrator.
04Enter tenant id, client id, client secret and environment URL under Settings, Dataverse Connect, or define them as WBS_DATAVERSE_CONNECT_TENANT_ID , WBS_DATAVERSE_CONNECT_CLIENT_ID , WBS_DATAVERSE_CONNECT_CLIENT_SECRET and WBS_DATAVERSE_CONNECT_ENV_URL in wp-config.php (recommended).
05Run “Test connection” on the settings page.
06Add a collection on the Collections tab and put [wbsdvc_collection name="<key>"] on a page, or insert the Dataverse Collection block. The step-by-step version with screenshots is at https://woods.consulting/docs-wbs-connect-getting-started/ . Optional shortcode attributes: per_page , columns , detail_page , form , search , filters , sort .
03 / Source details
Frequently asked questions.
Where is the documentation?
At https://woods.consulting/docs-wbs-connect/ : getting started, collections, forms, blocks, webhooks, health alerts, hooks and templates, the Pro add-on, and migrating from DataPress.
Do I need my own Dataverse environment?
Yes. The plugin is a front end for an environment you already own and administer; it ships with no data and no Microsoft account. Free developer environments are available from Microsoft at https://learn.microsoft.com/power-platform/developer/plan .
How is this different from Microsoft Power Pages?
Power Pages is Microsoft’s hosted portal product with per-user and per-page-view licensing. This plugin serves the same Dataverse data from your own WordPress site on standard hosting, through the official Dataverse Web API. Dataverse remains the single source of truth; only the front end moves to WordPress.
Does WOODS Business Solutions see my data?
No. Your WordPress site talks directly to your own Microsoft endpoints ( login.microsoftonline.com and your environment’s *.dynamics.com URL). Nothing is sent to us, and the plugin contains no tracking or telemetry of any kind.
Where do my credentials live?
Preferably as constants in wp-config.php , which lock the matching settings fields and keep the secret out of the database entirely. Alternatively the settings page stores them in the WordPress options table; the secret is never displayed again after saving. Credentials are only ever used server-side and never reach the browser.
What data leaves my site?
Two things, both to your own Microsoft tenant: the configured credentials during token requests to login.microsoftonline.com , and the data of form submissions (the fields you mapped, typically name, email, phone and message) written to your Dataverse environment. Record data flows the other way, from your environment to your site. No other external requests are made.
Does it work with any table?
Any table the application user can read, standard or custom. A collection needs the table’s logical name, its entity set name, a name column and the columns to display. Writes work against any table the application user may create records in, with values mapped to text columns; typed columns can be handled via a developer filter.
Can visitors edit records?
Only through an update-mode form, and only records that are visible through the collection the form is bound to. The application user needs Write on that table. Records that fail the collection’s status filter cannot be opened or changed.
Are the templates customizable?
Yes. Copy any file from the plugin’s templates/ directory into <your-theme>/wbs-connect-for-dataverse/ and edit the copy; the theme version wins, and child themes work too.