This feature may not be available by default and might need to be enabled upon request. Please contact your account manager for more information.
The Approval process adds a review step to Concurrent Working. When it is enabled on a project, changes can no longer be merged to Main directly: a modeler sends the merge to approval, and an approver reviews the selected objects, columns, and diagrams before the changes reach Main. Approval applies to merges to Main only, with no impact on merges between change branches.
How the approval process works
On a project with approvals enabled, the merge to Main is split into two steps. The modeler prepares the merge as usual, and then sends it to approval instead of merging. The branch moves to Pending status, the branch lock is released, and the selection is saved with the revision so that an approver reviews exactly what the modeler intended to merge. The approver opens the request, adjusts the selection if needed, and either approves and merges it or rejects it with a comment. A single approver decision completes the review.
A request can end in one of three ways:
Approved — the approver merges the branch to Main. The approved status applies to the branch revision that was merged.
Rejected — the approver returns the branch to the modeler with a mandatory comment. The saved selection is kept, so the modeler can make changes and re-submit without rebuilding it.
Withdrawn — any branch member with the Modeler role can withdraw a pending request. The branch returns to its normal state and the saved selection is kept for the next submission.
Note: The existing merge prerequisites still apply. A branch that is behind Main cannot be sent to approval or merged, and a pending request cannot be approved until the branch has been updated from Main.
Roles
Approver is a project-level role granted on top of the Modeler role. It applies to all branches of the project and does not change any of the user's existing modeler rights.
Project owner — always an approver. The role cannot be removed from a project owner. Project owners can also enable or disable the approval process.
Approver — can review, approve, and reject merges to Main on any branch of the project, and can grant or revoke the Approver role for other modelers. An approver can also revoke their own role.
Modeler — works in branches and sends merges to approval. Only modelers are eligible for the Approver role.
Consumer — can see approval requests for branches they belong to, read-only. Consumers cannot hold the Approver role.
For approvers, self-approval is allowed, see Approve and merge without review.
When a branch is sent to approval, the project's approvers are added to that branch automatically with edit access so they can review it. Granting the Approver role later has the same effect for branches that are already pending.
Notifications
Approval notifications use the existing notification channels (email and a personal Slack direct message, if configured). The user who triggers a change is never notified of their own action.
Approver role granted or revoked — the affected user is notified.
Branch sent to approval — all branch members except the submitter are notified. Approvers are branch members by this point.
Request rejected — all branch members are notified.
Request approved or withdrawn — all branch members except the approvers are notified.
Note: Approve and merge performed by the submitter skips the Pending status, so no approval notifications are sent. The regular merge and new revision notifications are sent as for any merge.
Enable the approval process
The approval process is off by default and is enabled per project by the project owner. Concurrent Working must be enabled on the project first.
Navigate to Dashboard
Select the 3 dots for the concurrent working project you want to enable approvals for
Select "Enable approvals", located right after the concurrent working option
From this point, merges to Main on this project require approval. Everything else in concurrent working continues to work as before
Disabling approvals returns the project to standard concurrent working behavior: branches merge to Main directly and no approval statuses are shown. Any pending requests are removed, and the project owner is asked to confirm before the change is applied. Approver assignments are retained while approvals is off and are restored if it is enabled again.
Add approvers
Approvers are managed while the approval process is enabled. Both project owners and existing approvers can grant or revoke the role.
Select a branch within the project of your choice
Select the logo > Click on Project Team
An Approver column is shown with a toggle on each user row. Turn the toggle on for the modelers who should review merges to Main
The change takes effect immediately — there is no separate save step. The user is notified that they are now an approver on the project
Toggle behavior by row:
Project owner — the toggle is on and locked, with the tooltip "Project owners are always approvers"
Modeler — the toggle can be turned on or off by project owners and approvers
Consumer — no toggle. Consumers are not eligible for the role
Users who are neither a project owner nor an approver see the column read-only.
The Approver role can also be granted when inviting a user. In the add user dialog, select the Approver checkbox. The checkbox is available only when the user is added with edit permission, and the grant is project-level regardless of which branch the dialog was opened from.
Send a merge for approval
The merge dialog itself is unchanged: compare tabs, selective merge of objects, columns, and diagrams, and conflict handling all behave as they do today. The difference appears on the final Review tab.
Open the branching menu in your branch and select "Merge", with Main as the target
Review the DDL and non-DDL changes and deselect any objects, columns, or diagrams that are not ready to be promoted
On the Review tab, add a comment and set the revision flags. The approval status field is system-managed and read-only (it is the only field blocked for editing)
Select "To approval", which replaces the merge button on projects with approvals enabled
The branch moves to Pending status, your selection and comment are saved with the revision, the project's approvers are added to the branch, the branch lock is released, and the dialog closes. You stay on the branch
Managing comments
The revision comment is shared. It is stored with the branch revision that was sent to approval, and both the submitter and the approver write into the same field — there is no separate reviewer comment box. This keeps the full context of a request in one place, visible to everyone who opens the merge dialog for that revision.
Because the field is shared, treat it as a running log rather than a single entry:
Append, do not overwrite. When adding review notes on top of a submitter's comment, add them above the existing text so the original description of the change is preserved
Identify who wrote what. A short prefix — a name, a role, or a date — makes the history readable after several review rounds
A rejection needs a comment. The comment field cannot be empty when rejecting a request; its current content is the rejection reason sent to the branch members
Comment edits are saved on their own. An approver's edits to the comment are persisted and recorded against the request, independently of the approve or reject decision
Comments are re-applied on re-submission. After a rejection, the comment is restored in the dialog together with the saved selection, so the reviewer's notes stay with the request until the merge is completed
Upon approval, the comments will be merged to Main and persist on the new revision.
Approve and merge without review
A submitter who also holds the Approver role sees an additional "Approve and merge" button on the Review tab. It executes the merge immediately with the current selection: the revision is marked as approved without passing through Pending, no approval notifications are sent, and only the regular merge notifications go out. The behind-Main rule still applies. No Reject button is shown when submitting your own branch.
Withdraw a request
While a branch is pending, every branch member sees a "Withdraw" button on the merge screen, and the same action is available on the Pending approvals page. Withdrawing clears the pending status and notifies the branch members. The saved selection and comment are kept and re-applied the next time the branch is sent to approval.
Review pending approvals
Pending requests are reached from the Approvals control on the dashboard. The control is highlighted whenever at least one branch you are a member of is waiting for approval, across all of your concurrent working projects with approvals enabled.
Select Approvals on the dashboard to open the Pending approvals page. The layout is similar to the Revisions page
-
Each row shows the parent project, the branch name, the user who raised the request, and the request date. Rows are ordered by request date, newest first
Only branches you are a member of are listed. If the branch revision is locked by another user, the row shows a lock indicator, and an approver can select "Unlock" to release it — the same mechanism as the unlock on the admin page
Select "Review" to open the merge screen for that branch. The link is shown only to users who hold the Approver role on the parent project.
-
The merge dialog opens with the submitter's selection applied, along with their comment and revision flags. The checkboxes remain adjustable, so objects, columns, and diagrams can be included or excluded before the decision is made
If the branch or Main changed after the request was submitted, the comparison is recalculated: saved deselections that no longer appear in the comparison are ignored, and objects that are new to the comparison are selected by default. Review the selection before approving
-
Update the shared comment if needed (see Managing comments), then decide:
"Approve and merge" — merges the selection as currently shown to Main, marks the reviewed revision as approved, records who approved it and when, and notifies the non-approver branch members
"Reject" — returns the branch to the modeler with the comment, which is required. All branch members are notified. Selection changes made before rejecting are not saved: the submitter's original selection is preserved for the re-submission
You stay on the branch after either action, and the row leaves the Pending approvals page
Note:
A pending request cannot be approved while its branch is behind Main. The branch has to be updated from Main before the merge can be completed.
Consumers see the rows for their branches read-only, with no review or withdraw actions. If a request is approved, rejected, or withdrawn by someone else while the page is open, acting on the row is blocked with the message "This request is no longer pending" and the list refreshes.