Writing
/
Texting with Notion AI

Texting with Notion AI

I need a faster way to capture ideas into Notion from my phone without having to open the mobile app, navigate to the right database, and type out a bunch of properties.

I want to activate Siri or open iMessage and say something like: “Remind me to schedule coffee with Jeff next week” and have that task automatically route itself to the right database with as many properties pre-filled as possible. It should have the ability to look up things like “Jeff” and try to see if I have notes about this person in other databases.

Notion AI has all the context it needs to connect the dots between my work, tasks, and relationships. It just needs to be easier to summon.

Use cases

  • Create and update reminders/todos
  • Add people to my personal CRM or update notes about a person after a meeting
  • Take photos of things I want to track, like books I want to add to my reading list, and extract structured data to pre-fill database properties
  • Ask questions about anything in my Notion workspace — Notion AI is connected to my email and calendar and over time has access to more and more nuanced context about my work and relationships
  • More in the future — in theory, anything Notion AI can do with pages, databases, and automations I should be able to control directly through the Messages app

How it works

  1. I send a text message to a phone number registered through Twilio
  2. Twilio forwards the message to a self-hosted API endpoint
  3. My API verifies that the message came from my phone number, then creates a page in a Notion database called “Texts” with a User sender property and the message contents as the page title.
  4. A Notion Custom Agent is “woken up” by this new page and uses its custom instructions to handle the incoming message.
  5. When the custom agent is finished working, creates a new page in the the same Texts database with its “receipt” of anything it did.
  6. This new Assistant message in the Texts database pings a different API endpoint on my server that forwards the receipt to Twilio, and finally back to my phone.

The custom agent

The magic happens right there in the middle with my custom agent, Jeeves. He has access to my core databases (todos, books, people, journal, etc.) so he can search and take action everywhere. My prompt for Jeeves explains the purpose of each of these databases, how I like the properties to be pre-filled (if at all), explains that he can look back through earlier messages to get context on the conversation so far, and includes a directive to always create a final Assistant reply when he’s done working.

The experience so far

  • This setup is ideal for quick capture. I love being able to text Jeeves from anywhere, desktop or mobile, and it feels quite natural to have Jeeves as “just another contact” I can talk to.
  • Because Jeeves is “just another contact” he integrates really well into the Apple ecosystem, meaning I can use Siri to dictate texts for super fast capture. This comes in really handy when I’m walking and need to capture something with my AirPods.
  • Being able to capture photos and have Notion AI extract info to pre-populate properties is magical. Nobody likes fiddling with properties.

Tradeoffs

  • Green bubble texting doesn’t handle streaming responses, so texting Jeeves will always feel slower and less responsive than using a native AI chat tool like Claude or ChatGPT. This ends up being fine for my quick-capture use case, however.
  • iMessage sometimes breaks a single message that contains a link into three separate messages. This is infuriating. If you type some text, paste a link, and add a bit more text, iMessage will break this into three bubbles, each received one at a time by the API. This confuses Jeeves and it takes a lot longer for him to reason about how the messages are related.
  • Jeeves has to be well-prompted. He needs to discern between a request about adding something to my todo list vs. saving a book in my Books database. This takes a bit of trial and error, and some occasional tweaks to get the output/tone to feel right.
  • It’s obviously way too complicated! No normal person would be willing to fight through a multi-day Twilio phone number verification process to wire this up, let alone self-hosting an API to handle all the routing and page creation. It’d be nice if I could eliminate the API steps of the workflow to keep as much of the logic baked into Notion AI as possible.