Bottom line
Use conversational clarify-then-handoff when the product cannot execute the action itself. Use a native draft card when the destination app owns Send. Use per-tool permissions when agents need standing access to mail or calendar.
At a glance
| Dimension | |||
|---|---|---|---|
| When consent happens | Clarifies inline within chat when it cannot act, then hands off to a booking site or mail app. | Clarifies recipient, purpose, and tone up front, then drafts inside a native Gmail card. | Front-loads consent before the agent runs: connector chips appear in the composer itself. |
| Granularity of approval | Single approval per draft; Send routes to Gmail, Outlook, or the user’s default mail app. | One draft card with Cancel and Send as co-equal buttons; Edit in Gmail is the escape hatch. | Per-tool Allow/Disable split into read-only vs write/delete buckets before any action runs. |
| What the draft looks like | Editable card with Edit, Copy, and Send toolbar, separate from surrounding chat commentary. | Draft renders in Gmail’s own visual language: To, Subject, and body fields users already recognize. | No draft-preview card; the connector chip and permission modal are the gate before any drafting. |
| Final human gate | For actions it cannot complete, hands off to a reservation link or phone number, never a fake confirmation. | A compact card summary keeps Send as the last, deliberate click after drafting finishes. | Approval happens before the run; once tools are allowed, the agent acts without a second gate. |
| Product bet | General chat: clarify conversationally, draft when it can, hand off the rest to trusted apps. | Ecosystem depth: human-in-the-loop rendered in Gmail’s own UI so approval feels native, not bolted on. | Agent trust: consent is a permissions matrix, not a per-message confirmation. |
When consent happens

Clarifies inline within chat when it cannot act, then hands off to a booking site or mail app.
Granularity of approval

Per-tool Allow/Disable split into read-only vs write/delete buckets before any action runs.
What the draft looks like

Draft renders in Gmail’s own visual language: To, Subject, and body fields users already recognize.

No draft-preview card; the connector chip and permission modal are the gate before any drafting.
Final human gate

For actions it cannot complete, hands off to a reservation link or phone number, never a fake confirmation.

Approval happens before the run; once tools are allowed, the agent acts without a second gate.
Product bet
General chat: clarify conversationally, draft when it can, hand off the rest to trusted apps.
Ecosystem depth: human-in-the-loop rendered in Gmail’s own UI so approval feels native, not bolted on.
Agent trust: consent is a permissions matrix, not a per-message confirmation.
What to copy
Copy ChatGPTYou cannot complete an action yet and need to keep the user movingState the limit in line one, ask a tight bulleted questionnaire, then hand off to a trusted external app.Read the ChatGPT teardown
Copy GeminiYou can draft into a real destination app the user already trustsRender the draft in the destination app’s own card pattern with Cancel beside Send, and never auto-send.Read the Gemini teardown
Copy PerplexityAgents need standing access to sensitive tools like emailSplit tools into read-only vs write/delete buckets with per-tool Allow controls before any run starts.Read the Perplexity teardown
Frequently asked questions
What is human-in-the-loop UX in AI products?
It is the set of patterns that keep a person in control of consequential actions: clarifying questions before drafting, editable preview cards before sending, and explicit permission grants before an agent can read or write sensitive data. It is the trust surface for any AI that acts, not just answers.
ChatGPT vs Gemini vs Perplexity: which human-in-the-loop approach is best?
None is universally best. ChatGPT clarifies in conversation when it cannot act, then hands off to a trusted app. Gemini drafts inside Gmail with one deliberate Send click. Perplexity gates standing agent access with a per-tool permissions matrix. Pick the gate that matches how often your agent touches sensitive data.
Should approval happen before an agent runs or after it drafts?
Gate before the run when an agent needs standing access to sensitive tools, as Perplexity does with per-tool Allow controls. Gate after drafting when each action is a one-off with a clear preview, as Gemini’s Send button and ChatGPT’s draft card do. Many products need both.
How should a product handle actions it cannot complete on its own?
State the limitation first, ask the smallest set of clarifying questions that unlocks a useful partial answer, and hand off the remaining step to a surface the user already trusts, a reservation link, a phone number, or their own mail client, rather than implying the action is done.
How is this comparison different from the product teardowns?
Each human-in-the-loop teardown is a screenshot-backed walkthrough of one product. This page synthesizes the same trust job across ChatGPT, Gemini, and Perplexity into a bottom line and comparison table. Use it to pick a gate pattern, then open the linked teardown for evidence.



