Setup experience for Notion's Custom Agents

Collaborators

Shannon Rhee

Timeline

June - August 2026

Scope

Product Design

Product Engineering

Notion’s Custom Agents are powerful...

Notion’s custom agents allow any team to set up powerful AI workflows to automate tasks like answering questions, automating reports, and triaging tasks.

Answering questions
Answering questions
Automating reports
Automating reports
Triaging tasks
Triaging tasks

...but with that power comes a setup problem.

In order to have a functional agent, you first need to set it up with a precise configuration of instructions, triggers, connections, as well as advanced settings.

The custom agent formula
The custom agent formula

The challenge lies in translating a broad intent in natural language into deterministic agent configurations.

Challenge: User prompt → agent config
Challenge: User prompt → agent config

My role

So my role was to bring setup precision to the chat!

I designed and built composable and scalable patterns for users to set up custom agents from natural language prompts: from capturing precise setup inputs in chat, to communicating those agent edits back to users.

My work: bringing setup precision to the chat
My work: bringing setup precision to the chat

The setup experience was broken.

When setting up a custom agent, adding connections and specifying entities like Slack channels or Notion pages required users to manually configure them in the agent settings page. This resulted in a broken flow between the chat and the settings page.

Connections

Connections required manual setup in settings

In order to connect an integration to your custom agent, users had to go into the settings and configure it themselves.

Problem: Connections required manual setup

Solution: Connection card

Now, a connection card surfaces when the agent detects that a connection is required.

Solution: Connection card

Entities

Specifying entities was unreliable

Specifying entities, like which Slack channels an agent listens to or which Notion pages it can access, sometimes resulted in the agent hallucinating entities that were not actually specified, or just left the user to configure them in settings.

Problem: Entities required manual setup

Dropdown in chat

Pick Slack channels from a searchable dropdown without leaving the chat.

Dropdown in chat
Dropdown in chat

Tag input

Type to add channels as tags, answering one setup question at a time.

Tag input
Tag input

Solution: Entity survey tool

I designed and shipped a survey tool that provides users a list from their actual data to select entities like Slack channels or Notion pages in the chat. This supports single and multiple selection, as well as custom inputs (like an 'other' option).

Solution: Slack channel survey tool
Solution: Notion pages & databases survey tool

Editing and saving agents was super confusing

When a custom agent had edits, it was unclear what edits were made and when to save the agent.

Problem

When a custom agent had edits, it was unclear what edits were made and when to save the agent.

Problem: Editing and saving was unclear
The experience left users asking...

Exploration

I explored ways to bring agent edits and saving to the chat!

Edits & save pill

A pill above the chat input counts unsaved edits and offers a save action.

Edits & save pill

Save edits in a card

A card lists each edit to the agent, with options to open settings or save changes.

Save edits in a card
Save edits in a card

Summarized edits & save card

The agent summarizes what it updated, then asks if you're ready to save.

Summarized edits & save card
Summarized edits & save card

Decisions

Key interaction decisions

After exploring options, I landed on 2 key interaction decisions: how edits (agent diffs) should appear to the user, and how the flow of saving should work.

Decision 1: Keep edits precise and decoupled from saving

Instead of forcing a save action on every edit, I decided to keep edits precise in chat, and decoupled from saving.

Unclear tool steps → Precise & exhaustive edits

Decision 2: Single save CTA in Settings

Instead of a persistent save button that users become blind to, I decided keep the agent settings page as the single source of truth for saving, and have a pill that tracks unsaved edits and links to settings.

Persistent save card → Unsaved edits pill that links to settings

Solution

New flow to understand edits and saving

Here is the 4 part solution I shipped to the agent creation, editing, and saving experience.

01 / Tool steps visualize edits
02 / Card for agent creation
03 / Unsaved edits pill
04 / Precise edits tooltip

Working in production code improved my designs

Designing with technical constraints

I extended the agent edit schema to create a consistent, comprehensive UI representation.

Working on the agent edit schema
Working on the agent edit schema

Iterating in real code

Working with the real interaction surfaced problems with the behaviour of the custom prompt, and allowed me to iterate on it.

Iterating on the custom prompt behaviour
Iterating on the custom prompt behaviour

Turning big future visions into small shippable parts

Bridge the long-term, “ideal” vision, with incremental ships you can make today.

Using production code in the design process

Design with technical constraints, and iterate with the real codebase.