Fellow
Designing an AI-Powered CRM for Brazilian Quick-Print Shops
Client
Fellow and SF Gráfica (Pilot Client)
Role
Product Designer - research, IA, flows, prototyping, usability testing, AI conversation design, vibe coding
Year
Late 2026 (pilot phase with first client)
Team
Tarik Malagoli - Design/Vibe Coding
Danilo Trivelatto - Programming/Vibe Coding
Tools
Figma, FigJam, Figma Make, Cursor, Claude Code, Supabase, Vercel, n8n
A 20-year-old print shop running a modern operation on Trello, spreadsheets, and...memory.
Fellow is a CRM built for Brazilian quick-print shops (gráficas rápidas) that sell speed but run on fragmented tools. I led the end-to-end design: field research inside a real shop, information architecture, order and pricing flows, conversation design for a WhatsApp AI agent, usability testing with real employees, and iteration.
The product is currently in pilot with its first client, Gráfica SF, where every number below was measured.

Fast-print businesses need to move quickly.
Gráfica SF is not a struggling business. Two decades in the market, born as an arm of the largest print shop in a city of nearly a million people, operating from a first-class space inside a shopping mall.
So you'd expect defined processes and a clean workflow.
What I found instead:
• No CRM or ERP ❌
• Products managed in spreadsheets ❌
• Pricing logic living in the owner's and manager's heads ❌
• No order history ❌
• No customer database ❌
• Decentralized control across disconnected tools: Trello for orders, WhatsApp for customers, spreadsheets for prices ❌
And the consequence customers actually feel: a WhatsApp inbox where the first reply can take a day. On one visit, an employee showed me roughly 30 messages from the previous day still waiting for a first response.
For a business whose entire promise is speed, that's not an operational detail, it's the product failing at the front door.


Three users, three completely different contexts - one order.
Design implication: one order object had to flow through three radically different interfaces, a dense desktop CRM, a natural-language WhatsApp conversation, and a glanceable mobile app. Consistency of data, not consistency of UI, was the design principle.
Print Shop Staff
Marcos, 34, counter attendant
Standing at a counter, interrupted constantly, switching between walk-ins and WhatsApp. Core need: create accurate orders fast, without doing math.

The Customer
Ana, 29, small business owner
On WhatsApp, in a hurry, often ordering while doing something else. Core need: an instant, clear quote and a painless way to pay.

Shop manager / owner
Carlos, 41, the owner
Needs a 360° view of the business, know what sold, what's late, who's producing, what came in today.

Solo designer, AI-accelerated, research to working product in weeks, not months.
I owned the end-to-end design process: from field research, user flows and information architecture to prototyping, usability testing and iteration. I worked closely with Gráfica SF’s real employees, observing how orders were handled in practice and using those insights to continuously refine the product.
AI-assisted tools helped me shorten the distance between design and implementation. I used Figma and FigJam to explore flows and interactions, Lovable for early functional prototypes, and later stayed close to the build through vibe coding, allowing ideas to move quickly from research to something users could actually test.
A pilot client, no historical data, and a pricing model that existed only in people's heads.
• No baseline data. The shop had no metrics on response time, order volume per channel, or quote accuracy. All "before" numbers came from direct observation and manual timing during my visits.
• A live business. I couldn't pause operations to test. Every usability session happened between real customers, with real orders.
• Undefined pricing logic. The client couldn't articulate how prices were built, a hard blocker for both the CRM and the AI agent.
• Pilot stage. Fellow is live with one client; results are from that pilot, not a broad rollout.
I spent days inside the shop before drawing a single screen.
Multiple visits to Gráfica SF across the project - shadowing counter service, watching WhatsApp conversations unfold in real time, following orders into production, observing how the team coordinated pickups and deliveries.
What observation revealed that interviews wouldn't have: the team didn't describe most of these as problems. Pricing from memory was a point of pride. A slow WhatsApp reply was "a busy day." The pain was invisible from the inside - normalized by twenty years of doing it that way.
Methods: contextual inquiry across in-shop visits · task observation and timing at the counter · analysis of the existing Trello board and WhatsApp history · working sessions with the owner to reverse-engineer pricing rules · iterative usability testing with real employees during live operation.
The order didn't have a flow. It had gaps.
I mapped the full lifecycle — intake → quote → payment → production → delivery/pickup — and marked every point where the shop lost visibility. Three blind spots became the pillars of the product:
1. Payment verification (nobody checked if payment receipts were real)
2. Delivery coordination (pure phone-tag)
3. WhatsApp response time (the 30-message backlog)
Everyone knew the price. No one could explain how it was built.
Products like stickers, business cards, and banners can combine multiple variables — size, paper type, print method, finishing, quantity, special cuts, and production requirements.
During research, I found that there was no documented pricing logic connecting these variables to the final price.
Much of that knowledge lived in spreadsheets, old price lists, and especially in the experience of the owner and senior staff. The deeper I investigated, the clearer it became that pricing wasn’t just complex - the business had no shared model for explaining how a price was actually formed.
The hardest interface had no screens.
While observing WhatsApp conversations, I realized that customer service followed no predictable path. Customers rarely provided all the information needed for a quote upfront — they changed specifications, asked unrelated questions, sent incomplete requests, returned hours later, or requested multiple products in the same conversation.
What looked like a simple chat was actually a complex order-building process hidden inside messages. Employees had to identify the customer’s intent, collect missing product specifications, answer questions, remember what had already been discussed, and determine when there was enough information to create a quote. The conversation itself was an interface — just one without buttons, fields, or a fixed sequence.
The first version slowed people down. Testing told me where.
Initial rounds of in-person usability tests with shop employees exposed flows that were delaying the operation. Testing between live customers meant sessions were interrupted, which turned out to be a feature: I saw exactly how the system behaved under the shop's real conditions, not lab conditions.
Example finding → fix:
• Finding: Staff abandoned order creation mid-flow when a walk-in customer arrived, losing all entered data.
• Fix: Auto-saving draft orders, resumable from the dashboard.
• Result: Order abandonment during creation dropped to near zero.
After multiple test rounds and iterations, the streamlined flows produced the measured 15% reduction.
The order board: keep the kanban, rebuild what's under it
Before: Orders lived in Trello. It worked as a team board, but: customers and products couldn't be linked to records - everything was typed by hand with no source of truth; unrelated information like invoice generation was mixed into the same board, creating confusion; the team retyped repetitive data constantly; and the business couldn't answer basic questions - how many orders last month? how much did we bill this year?
BEFORE
AFTER
Decision: Keep the kanban method (Jakob's Law), rebuild the data model beneath it. Orders now pull from a real customer base and product catalog. Every order gained a code, a history, and a report. I added two views Trello never had: by order status and by employee, giving the manager a full panorama.
Why it mattered: zero retraining cost, and the shop moved from "we think it was a good month" to knowing exactly what it sold, to whom, and by whom.
Don't redesign the habit - redesign the substrate
The team already worked in kanban, via Trello. Rebuilding their mental model from scratch would have cost weeks of relearning during live operation.
I applied Jakob's Law: users spend most of their time on other products and expect yours to behave the same way. Fellow kept the kanban metaphor the team had mastered and replaced what was actually broken underneath it - disconnected data, retyped information, no source of truth. Familiar surface, rebuilt foundation.
When the prototyping environment became a product constraint
Fellow initially started in Lovable.
It was useful for getting ideas into functional form quickly, which was valuable during the earliest stages of exploration.
But as the product became more complex, we started reaching limitations in flexibility and implementation control.
The system was no longer a simple prototype.
It needed:
complex product logic;
sophisticated pricing;
integrations;
reusable components;
deeper customization;
continuous iteration based on pilot feedback.
The decision: We migrated the project from Lovable to Cursor.
This was an important technical turning point.
Danilo Trivelatto was fundamental to this decision and to making the migration successful.
His programming expertise helped move Fellow into an environment where we could gain much deeper control over implementation, evolve the architecture and support more ambitious product requirements.
That change allowed us to continue improving areas that would have become increasingly difficult to manage under the previous constraints.
What I learned from it
Tooling decisions are also product decisions. The fastest environment for the first prototype is not necessarily the right environment for a product that is becoming operationally complex.
The ORDER BOARD: keep the kanban, rebuild what's under it
Previously, creating an order meant moving between Trello, WhatsApp, product references and spreadsheets.
I redesigned the order as a central workspace.
AFTER
From a single order, employees can access customer information, product configuration, payment and relevant context.

Quick customer access
Instead of leaving the order to search another system, employees can quickly open customer information.
Direct customer contact
Clicking the customer's contact information provides a shortcut to communication instead of forcing employees to continually switch between the order and WhatsApp.
Order history
Gráfica SF previously had no centralized order history.
That meant useful context from previous purchases disappeared.
Fellow connects previous purchases to the customer profile and introduces
Repeat Order
A previous order can be reused as the foundation of a new one, a common scenario in printing businesses.
Design principle:
Don't make users reconstruct information the system already knows.
Designing for speed at the counter
During testing, we discovered that a structured order workflow could still be too slow for simple counter requests. That was an important failure.
The interface made logical sense, but real counter interactions demanded something faster. The team asked for a Quick Order workflow for simpler products such as small print runs and copies.
I redesigned the flow around three focused steps: Customer → Products → Payment
The objective was not to expose the full power of the CRM. It was to expose only what was necessary at that moment.
UX lesson: The most complete workflow is not always the best workflow.
The correct amount of interface depends on the context of use. This redesign contributed to the 16% faster order creation time observed during pilot testing.
Select/Add CUSTOMER
Choose PRODUCT
Receive PAYMENT
Don't redesign the habit - redesign the substrate
The team already worked in kanban, via Trello. Rebuilding their mental model from scratch would have cost weeks of relearning during live operation.
I applied Jakob's Law: users spend most of their time on other products and expect yours to behave the same way. Fellow kept the kanban metaphor the team had mastered and replaced what was actually broken underneath it - disconnected data, retyped information, no source of truth. Familiar surface, rebuilt foundation.
The pricing engine: the heart of the CRM
Before: A single business card can be configured 240 different ways. Pricing was manual, from memory or fragmented spreadsheets, making every quote slow and error-prone. New employees lost significant time just learning prices.
Problem: The client couldn't articulate how prices were built. There was no document to design from.
BEFORE

AFTER
Decision - and how it was built: This was the most challenging part of the project, and the one that most required design and engineering to work as a single loop.
• It was designed the variation matrix: each variation (format, size, paper, finish, special cuts, quantity, art) carries its own price component, and their combination generates the final price. I ran the working sessions with the owner to extract the tacit rules and modeled how variations should compose.
• Danilo Trivelatto turned that model into a calculation engine that holds up under real conditions - handling the combinatorial explosion of variations, the rounding and rule-precedence edge cases, and the performance needed for both the counter and the AI agent to query it in real time. Several rounds of attempts and failures were needed before the model was correct; his engineering judgment on how to structure the calculation is what made the design viable rather than theoretical.

Two extensions came from field reality:
• Smart calculation: customers ask for odd numbers - "325 stickers, 0.8 × 0.8 in." Staff used to work out manually how many fit on an A3 sheet, losing time and delaying the order. The system now computes the layout.
• Graphic calculation: bleed, margins, A4 vs A3, sheets vs meters vs units - a per-product configuration, because each product carries its own logic.
Why it mattered twice: at the counter, staff stopped calculating. On WhatsApp, the AI agent quotes from the same engine, so automated quotes are precise rather than approximate. This was the make-or-break module: without pricing working, the entire CRM collapses.
Smart calculation
Graph calculation
Designing a real customer database
BEFORE
Before: Gráfica SF did not have a centralized customer base. That meant:
- Lost contacts;
- No complete order history;
- No single place for addresses;
- Limited understanding of customer behavior.: The client couldn't articulate how prices were built. There was no document to design from.
AFTER
Fellow introduced structured customer profiles containing contact data, addresses and purchase history.
That enabled a subtle but meaningful experience improvement.
When a known customer contacts the company through WhatsApp, the AI Agent can identify them by phone number and address them by name.
From:
“Who is this customer?”
To:
“We already know who we're talking to.”
That transforms the CRM from a passive database into part of the service experience.

Customer record shortcut: main information, phone, address, order history, and notes one click away instead of hunting across screens and systems.
Quick customer access
Instead of leaving the order to search another system, employees can quickly open customer information.
Order history
Gráfica SF previously had no centralized order history.
That meant useful context from previous purchases disappeared.
Customer Financial Profile
Fellow centralizes each customer’s financial information in one place, including credit limits, invoice terms, overdue tolerance, outstanding balances, billing restrictions and financial history
What if the customer didn't have to wait for the first reply?
BEFORE
One of the strongest research moments happened while standing next to employees answering WhatsApp.
I saw conversations waiting from the previous day.
At certain points, dozens of people could be waiting for an initial response.
For the customer:
silence feels like bad service.
For employees:
every new message increases the backlog.
AFTER
The first opportunity
Centralize WhatsApp conversations inside Fellow.
Instead of treating customer service as a completely separate tool, we integrated it into the operating context of the CRM.
Employees can now see:
- Customers;
- Current products;
- Existing orders;
- Payment context;
- Conversation.
New messages are surfaced directly from the Fellow interface.
Conversation design: the interface with no screens
Open questions I had to answer: How should the conversation open? What tone should the agent hold? Which information must it collect before quoting?
Decision: Before building, I mapped the full conversation flow in FigJam - service guidelines plus the range of situations that can occur: the happy path and the edge cases (vague requests, mid-conversation changes, price objections, customers who vanish and return days later).
A detail only a customer database makes possible: returning customers rarely introduce themselves. The agent identifies them by phone number and greets them by name from the first message.
Before: Service happened directly in WhatsApp. Staff told me they got lost among simultaneous conversations and couldn't tell:
• whether a customer had paid: the trigger for starting production. Paid orders sat idle because a message slipped past unnoticed.
• which conversations were stale: they archived chats manually just to keep the inbox usable.
• how to quote quickly: they typed the product name, every variation, and sent reference photos and prices by hand, stretching each conversation.
• The AI agent replies at any hour, so nothing needs archiving to stay manageable.
• The agent builds the quote/order itself and hands the conversation to a human only for validation.
• Pause AI: staff take over instantly by typing a message or pressing a button.
Why the Pause AI button matters more than it looks: it's the trust mechanism. Automation a user can't interrupt is automation the user resents. A one-tap override is what made the team willing to let the agent run.

One source of truth, three surfaces
The same order object had to behave correctly in a dense staff web app and in a natural-language WhatsApp conversation. The rule: consistency of data, not consistency of interface. The AI agent quotes from the same pricing engine the counter uses - otherwise the system would lie to customers.
Designing data the company never had
BEFORE
Gráfica SF did not have immediate answers to basic business questions such as:
How many customers do we have?
Which products sell most?
How much did we sell today?
Which employee sells most?
Which payment method is most common?
How many orders were counter pickup vs. delivery?
The Reports area converts operational data generated by Fellow into business visibility.
AFTER
The system now brings together revenue, orders, customer data and product performance so managers can make decisions without manually requesting fragmented reports.
Design evolution
This represents an important shift:
Fellow started by organizing work.
It gradually began creating information for decision-making.
A reporting layer for the owner
Revenue trend, order distribution by status, average ticket, active customers
Plus: Order-level answers: top-selling employee, most frequent payment method, counter vs. delivery split, biggest customer, daily sales.
Configuration instead of assumptions
AFTER
Research also made something clear:
No two print shops operate exactly the same way.
Rather than hardcoding one “ideal” workflow, we created configuration options for:
- Kanban columns;
- Employee flows;
- Order rules;
- Labels;
- Payment methods;
- AI Agent instructions.
The goal is for Fellow to adapt to the operation instead of forcing every operation to become identical.
Product design principle:
Standardize the experience where consistency helps. Configure the workflow where the business genuinely differs.
Flexible Kanban Flows
Reorder Kanban columns to adapt workflows to different production needs and give teams greater control over order management.
Payment Methods
Configure and manage the payment options available to the print shop in one place.
AI Agents
Centralize the intelligence behind AI Agents. Define their knowledge base, response behavior, service tone, instructions, and customer interaction guidelines.
Outcomes
✅ −16% time to create a counter order
✅ −37% staff time in customer conversations: the agent handles service up to order completion, then hands off
✅ Payment verification automated: replacing screenshot-based trust that had already caused losses
✅ From zero to a full data layer: customer base, order history, business reports
✅ Perception shift: from customers waiting a day for a first reply, to instant response
Scope, stated honestly: these come from one pilot client. The next milestone is validating them across additional shops.
Measured in the pilot, not projected.
Challenges and Lessons Learned
What I learned
In a quick-print shop, every second shapes how customers perceive the service. Fellow was designed around that reality, reducing friction from the first WhatsApp message to order creation, production, and final delivery.
Working side by side with Gráfica SF’s team was essential. Observing real employees, testing working flows, and iterating inside the actual operation helped me design from their reality rather than from assumptions. The first phase is now delivered and running as a pilot at Gráfica SF, with early tests already showing measurable improvements in order creation and customer service.
From a delivered pilot to a scalable product
The first phase proved that Fellow can centralize an operation that previously depended on disconnected tools, while also addressing one of its biggest bottlenecks: slow WhatsApp service.
The next challenge is scale. After the pilot is validated with additional quick-print shops, I recommended a Phase 2 focused on expanding Fellow from a successful first implementation into a more complete and scalable product for the market.
Insights gathered during field research also uncovered opportunities that go beyond the scope of the first release. Rather than adding them prematurely, I proposed validating the core product with more print shops first and using those learnings to prioritize the next phase.
Recommended Phase 2 opportunities:
- Validate Fellow with additional quick-print shops to identify shared patterns and business-specific differences.
- Payment integration, enabling verified payment status and automated payment links instead of relying on receipt screenshots.
- Delivery & rider experience, connecting dispatch, drivers, delivery status, and the order lifecycle.-
WhatsApp voice-message support for the AI Agent, reflecting how customers actually communicate.
- Full-funnel analytics, measuring the journey from first contact to quote, payment, production, and delivery.
Fellow’s first phase transformed a fragmented operation into a connected workflow. Phase 2 is about taking what worked at Gráfica SF, testing it across more businesses, and turning those learnings into a product that can scale.