Request Publish
Learn how to configure and use the Request Publish workflow to route content through an approval process before it goes live.
Introduction
The Request Publish workflow provides a structured approval process for content publishing. Authors submit a publish request directly from the Document Authoring editing interface. The designated approvers receive an email notification with a link to review the content and either approve or reject it.
The workflow consists of two components working together:
- Request for Publish Plugin — a DA plugin used by authors to submit publish requests
- Publish Requests App — a DA app that serves both authors and approvers. Approvers see an inbox of requests they can manage. Authors see a list of their own submitted requests, which they can resend or withdraw.
Email notifications are sent via a backend worker managed by the AEM Engineering team. The worker is provisioned per customer using your own email infrastructure. A demo environment based on Gmail is available to get you started.
Setup
The Request Publish workflow requires three steps: getting onboarded by your AEM Engineering contact to configure your org and site, configuring your DA site to enable the plugin and app, and setting up the required user permissions.
Step 1: Get Onboarded
Your org and site needs to get onboarded in order to use the plugin. To get started, reach out to your AEM Engineering contact with the following information:
-
Your DA org and site — so that your site can be registered to use this feature
-
Your email provider (if you don't want to use the default email provider we provide) — the email service or API your organization uses to send mail. The worker supports bring-your-own email providers. If you don't have one ready, a default email provider is available to get you started. If you bring your own email provider, provide us with the following information:
- apiUrl - Publicly accessible API URL that implements your email provider
- apiKey - API Key to access the endpoint (will be passed as
x-auth-api-keyheader) - fromEmail - The from email you would like the email to be sent as (eg:
[email protected]) - fromName - The from name you would like to show up in the email (eg:
DA Publishing)
At this time, your custom API should support the following payload format
{\n \"personalizations\": [\n {\n \"to\": [\n { \"email\": \"[email protected]\" },\n { \"email\": \"[email protected]\" }\n ],\n \"cc\": [\n { \"email\": \"[email protected]\" }\n ],\n \"subject\": \"Subject line\"\n }\n ],\n \"from\": {\n \"email\": \"[email protected]\",\n \"name\": \"DA Publishing\"\n },\n \"content\": [\n {\n \"type\": \"text/html\",\n \"value\": \"<html>...</html>\"\n }\n ]\n}
Step 2: Configure Your DA Site
You need to have CONFIG write permissions for this step in DA
Once onboarded, configure your site's DA config sheet to enable the plugin, app, and workflow rules. Open your config sheet at https://da.live/config#/<org>/<site> and make the following changes.
library tab — Request Publish plugin
Adds the plugin to the DA library so authors can access it from the editing interface:
| title | path | icon | experience |
| Request Publish |
|
|
fullsize-dialog |
apps tab — Publish Requests inbox
Adds the inbox app to the DA Apps menu. The app automatically shows the appropriate view based on who is logged in — approvers see pending requests to manage, authors see their own submitted requests.
| title | description | path |
| Publish Requests Inbox | Manage Requests to publish the content |
|
publish-workflow-config tab
Defines path-based rules that determine which approvers are assigned to different areas of your site. Each rule has a Pattern (supporting wildcards), an Approvers column (comma-separated emails or distribution list names), and an optional CC column. The most specific matching rule is used for any given content path.
| pattern | approvers | CC | notifyonreject |
|
[email protected] | [email protected] | true |
|
[email protected] | ||
|
[email protected] |
Pattern specificity is determined by the number of path segments that match. An exact match takes highest priority, followed by closer wildcard matches, with the root /* wildcard as the catch-all fallback.
publish-workflow-groups-to-email tab (optional)
If you use distribution list (DL) names in the Approvers or CC columns, add this tab to map them to individual email addresses:
The config is read from the site-level config first (/config/<org>/<site>/), with an automatic fallback to the org-level config (/config/<org>/) if not found at the site level.
Step 3: Configure User Permissions in EDS
Users must have the appropriate EDS permissions for their role on the <org>/<site>:
- Authors — users who submit publish requests must have at least
basic_authorpermissions - Approvers — users who review and approve requests must have at least
basic_publishpermissions
Use the AEM User Admin tool to add users and assign roles for your org and site. For a full description of available roles, see the Admin Roles documentation.
For Authors: Requesting Publish Approval
Once the plugin is configured, authors can submit publish requests directly from the DA editing interface.
Submitting a Request
After previewing your content and confirming it is ready to publish, open the Request Publish plugin from the DA library panel. The plugin will automatically detect your current page and load the relevant information.
The plugin pre-fills the following information:
- Content Path — the page you are requesting to publish
- Preview URL — a link to your draft content on the preview environment
- Approvers — automatically determined from the workflow config based on your content path, with distribution lists expanded to individual names
- CC Recipients — additional recipients to be copied on the notification email (if configured)
Click the View Content Diff link to see a side-by-side comparison of your draft content against the currently published version before submitting. This will open in a new tab to AEM Diff Checker Tool, you need to ensure you are logged in to sidekick to be able to view the diff between your changes and what is live. You can optionally add a note for your approver to provide context, flag areas for review, or indicate urgency.
Click Request Publish to submit. A confirmation will appear showing who was notified. The approver will receive an email with a link to review the request.
Once submitted, you will receive an email when the request is approved or rejected:
- Approved: Your content is published automatically, and you receive a link to the live page
- Rejected: You receive the approver's reason so you can make changes and resubmit
Note: You can only have one pending request per page. If you need to make additional changes, wait for the current request to be processed first.
Tracking Your Requests
Open the Publish Requests Inbox from the DA Apps menu to see all requests you have submitted. The app shows a My Publish Requests view listing each request with its current status.
From this view you can:
- Click Preview to open the draft content on the preview environment
- Click Resend Request to re-send the notification email to the approver if you haven't heard back
- Click Withdraw Request to cancel a pending request if you no longer need it published
For Approvers: Reviewing Publish Requests
Approvers open the Publish Requests Inbox from the DA Apps menu, or follow the review link directly from a notification email. The app shows a Publish Request Inbox view listing all pending requests you are authorized to approve.
Managing Requests from the Inbox
Each entry in the inbox shows the content path, the author who submitted the request, and quick action buttons:
- Click Diff to open a side-by-side comparison of draft versus currently published content
- Click Review to open the full request detail view with approve and reject options
- Click Approve & Publish to publish a single request immediately without opening the detail view
- Click Approve & Publish All to bulk-publish all visible pending requests at once
Reviewing a Request in Detail
The detail view shows the content path, author, optional note, preview link, and a content diff. Use the diff to confirm the changes are correct before approving.
Click Approve & Publish to publish the content. The author will receive a confirmation email with a link to the live page.
To reject a request, expand the Reject Request section, provide a reason, and click Reject Request. The author will receive an email with your rejection reason.
Troubleshooting
"No approver rule found matching path"
The content path does not match any rule in the publish-workflow-config tab. Add a matching pattern (e.g., /* as a catch-all) or contact your site administrator.
"Publish workflow configuration not found"
The publish-workflow-config tab is missing from the DA config at both the site and org level. Verify that the tab exists and is named exactly publish-workflow-config.
"Request Pending" shown instead of the plugin form
You already have a pending request for this page. Open the Publish Requests Inbox App to view its status, resend the notification, or withdraw it.
"Could not determine your email"
Your session may have expired. Refresh the page or sign in again.
"Not Authorized" shown in the approver inbox
You are not configured as an approver for this content path. The message will show who is authorized. Contact your site administrator if you believe this is incorrect.
If the app shows a 403 error
Sign out from both the sidekick and DA, then sign in again. If the issue persists, try in a fresh incognito tab.