×

How DANA Indonesia ran a massive code migration with Cursor agents inside Notion

96%faster to review-ready PRs
47%reduction in environment startup time
180components migrated weekly

DANA Indonesia uses Notion and Cursor agents to migrate Android components at scale, cutting time to a review-ready PR from 24 hours to 52 minutes.

DANA is helping Indonesia go cashless

DANA Indonesia is one of Indonesia’s largest digital payment platforms, serving 200 million registered users through a consumer app for payments, transfers, bills, and other financial services.

The vast majority of DANA’s customers use iPhones, but the app still contains nearly 3,000 components built on a legacy design system. The repository holds the full app and produces a final build of roughly 100MB, making each automated run heavier than a typical coding task.

Migrating the backlog by hand would mean repeating the same code generation, visual audit, and pull request steps thousands of times. Since its engineering team runs projects and knowledge in Notion, following a move away from Jira and Confluence, it made sense to use Notion to break down that backlog. Using Notion’s External Agent capabilities, engineers route these batches through a team of specialized Cursor agents.

A migration built for agents

Design system migration has the right shape for agent work. The backlog is massive, but the work is repetitive and clearly defined: update a component, compare it with the new standard, document the result, and prepare it for review. Doing that sequence manually across 2,970 components would consume engineering time without requiring a new decision at every step.

For Randi Waranugraha, VP of Engineering, and DANA’s engineering team, the question was not whether Cursor could rewrite one component. It was how to repeat the process at scale without losing consistency, context, or review. In Notion, the team turns the backlog into batches of tasks, gives each agent focused instructions and access, and moves the work from code generation to visual audit to pull request. Each stage produces a concrete output for the next agent and leaves a visible record for the human reviewer.

We have thousands of components that we want to migrate. The question was: how can we do this at scale?
VP of Engineering, DANA Indonesia
Randi WaranugrahaVP of Engineering

Notion was already DANA’s engineering home

Years before this migration, DANA moved its engineering work out of Jira and Confluence and consolidated task management and its knowledge center in Notion. When Notion launched External Agent capabilities, Randi knew bringing Cursor agents into the workspace was a natural next step. The tasks, documentation, agent instructions, and review trail could all stay beside the engineering work the team already managed.

The agents work alongside DANA’s existing engineering system, not inside a separate AI sandbox. Notion provides the shared context, coordination, and visibility layer. Cursor provides the coding execution environment.

Because the agents work in the team’s shared workspace, the workflow is collaborative by default. Engineers can see each run, review outputs on the same task, and step in without reconstructing context from a private AI chat. The work belongs to the team, not only to the person who started the agent.

Kanban board tracking DANA's migration using Notion.
We consolidated everything into Notion. Task management and our knowledge center are all there, so it’s the perfect place to orchestrate agents, too.
VP of Engineering, DANA Indonesia
Randi WaranugrahaVP of Engineering

DANA divided the migration among specialized agents

DANA organizes components into batches, then moves each batch through a multi-agent pipeline:

  1. The Migration Agent generates the code. It picks up a task batch, follows the migration instructions, writes the replacement code, and creates a branch.

  2. The Audit Agent screenshots and annotates the work. It opens the same prepared virtual machine, creates a new audit page, and produces annotated screenshots that check details such as text, labels, and colors. Some color differences are expected because the component is moving to the new design system.

  3. The PR Agent prepares the work for review. Once code generation and audit are complete, a third agent creates the pull request.

  4. The Learning Agent improves the next run. It periodically synthesizes previous runs and turns those lessons into better instructions for the agents that follow.

Together, the agents have processed 575 components to date, completing 180 runs per week.

Infrastructure designed for scale

The repository contains DANA’s full Android app, so starting every environment from scratch would make the pipeline impractical. The team pre-builds the environment so each virtual machine starts warm and the agents can get to the migration work faster. That setup reduces average environment startup time by 47% (from 17 to 9 minutes).

Running many agents created a second problem: knowing which jobs were active and which had finished. DANA built a worker that listens for agent start and end events, then sends them to a registry agent. That gives the team one place to observe concurrent runs rather than opening tasks one by one to check their status.

A screenshot of the agent registry log.
We have a lot of agents, so I need to know which ones are running. We created a worker that listens for when an agent starts and ends, then sends that information to our registry agent.
VP of Engineering, DANA Indonesia
Randi WaranugrahaVP of Engineering

Human review remains part of the pipeline

The current pipeline deliberately stops at agent audit. During pull request review, the page owner still examines the code and confirms that the screenshot audit is correct. The agent moves the migration to a reviewable state, but a person decides whether the result is ready to merge.

A batch now moves from assignment to a review-ready PR in 52 minutes, compared with a previous average of 24 hours, without shipping any AI slop.

During pull request review, we still need the page owner to check the code and verify that the audit result is correct.
VP of Engineering, DANA Indonesia
Randi WaranugrahaVP of Engineering
I had been waiting for these External Agent capabilities. Because our engineering context and work was already in Notion, it made perfect sense to run the coding agents in the same place.
VP of Engineering, DANA Indonesia
Randi WaranugrahaVP of Engineering

Các đội ngũ khác sử dụng Notion như thế nào?

 
Toyota sử dụng Notion để tối ưu hoá luồng công việc, trong đó tính cộng tác là một phần không thể thiếu

Câu chuyện của khách hàng

Toyota sử dụng Notion để tối ưu hoá luồng công việc, trong đó tính cộng tác là một phần không thể thiếu

 
Cách công ty khởi nghiệp tăng trưởng nhanh nhất thế giới giữ vững tốc độ với Notion

Câu chuyện của khách hàng

Cách công ty khởi nghiệp tăng trưởng nhanh nhất thế giới giữ vững tốc độ với Notion