Skip to content

Contact delete confirmation and return handoff

Use the real contact edit page to see how App Connect keeps the destructive delete flow explicit with confirmation, request state, and a return-to-contacts handoff.

The contact edit page does something important with destructive actions: it keeps delete separate from normal editing. App Connect makes the delete path legible by giving it its own form, confirmation moment, request state, and a clear route back to the contacts list after success.

Keep delete separate from the richer edit form.
Make the destructive submit state visible while the request runs.
End with a concrete return path instead of a vague success message.

The contact edit page keeps the destructive workflow understandable by separating delete from update. That gives the page room to show the warning, request state, and success/error outcome without overloading the normal edit form.

The edit page shows both the normal edit path and the delete path

Section titled “The edit page shows both the normal edit path and the delete path”

Start on the real contact edit page so the two forms are visible together. The page makes a clear distinction between updating the current contact and permanently removing it.

The delete action is its own Server Connect form

Section titled “The delete action is its own Server Connect form”

#contact_delete has its own action, hidden id input, success state, and error state. That separation matters because destructive work should not disappear inside the richer update form contract.

The submit control makes the destructive moment explicit

Section titled “The submit control makes the destructive moment explicit”

The delete button does two practical things before the record disappears: it asks for browser confirmation, and it disables itself while contact_delete.state.executing is true. That gives the user one last check and prevents accidental double submits.

The success state ends with a route back to the contacts list

Section titled “The success state ends with a route back to the contacts list”

After a successful delete, the page does not leave the user stranded on a now-invalid record. The success alert exposes a direct return link to /contacts, so the destructive flow ends in a safe list view instead of a broken detail context.

The delete flow feels trustworthy because App Connect gives it a separate surface, an explicit confirmation moment, a visible request state, and a clear way back to the contacts list once the record is gone.

Keep destructive work separate from the normal edit contract.
Expose executing and error/success state where the user makes the decision.
Finish destructive flows with a stable return destination.