Skip to main content
  • Sales & Growth
  • In production, expanding
  • Client work

Loop ERP: the CRM their sales team runs on, and the AI layer around it

Loop ERP sells enterprise software to the recycling and scrap industry. We replaced the generic CRM their sales team barely used with Noodle, a CRM shaped like their business, and kept building outward from it: Gmail and calendar sync, an SDR operating system, a live command center, and an AI layer that drafts, reads and files.

a production CRM in daily use by Loop ERP's sales team, with the surrounding systems graded honestly in the outcome: in production, built and rolling out, or in build. Screens are the real product on seeded, fictional data.

Noodle's Today view: a greeting, an ask-anything box with quick prompts, the rep's task list with two overdue items flagged, a morning brief and a smart queue of deals needing follow-up.
The day starts here: tasks, the smart queue, and the ask box over the whole CRM.
Client
Loop ERP
Company
Loop ERP
Industry
B2B Sales

A look inside

Noodle's Today view: a greeting, an ask-anything box with quick prompts, the rep's task list with two overdue items flagged, a morning brief and a smart queue of deals needing follow-up.

The day starts here: tasks, the smart queue, and the ask box over the whole CRM.

1 of 11

Three of them, close up

The pieces that are easiest to claim and hardest to show.

Email generation, on the record

A draft that says what it does not know.

One button on the contact, and the draft arrives with the record's own evidence behind it: how the account is being worked, whether a real trigger was found, the word count against the playbook's limit, and a list of what the record could not tell it. Nothing is sent until a person presses send, from their own Gmail.

The engine here is the real one, running through the product's own no-key sandbox mode: it built the prompt, validated the output against its own schema, counted the 63 words, raised the NEEDS_TRIGGER flag because no trigger was given, and worked out what the record was missing. The words in the draft were written by us rather than generated, and everything around them is the product computing.

The generate-email dialog on a contact: recipient on the left with a choice between account-based and volume outreach, an empty trigger box, then the draft on the right tagged Cold, cold-first-touch and NEEDS_TRIGGER, with an editable subject and body, a 63-word checklist, and a list headed what the record did not know.
Account-based or volume, and the difference is stated rather than hidden: the volume mode's own description says it claims no research, because none was done. With no trigger given, the draft flags NEEDS_TRIGGER instead of inventing one.

Lead generation

Every lead in one board, with the next move on its face.

A lead arrives carrying where it came from and enters the board at New Lead. From there the rep works it: each card shows the company, the contact, how many attempts have gone in, whether there is a next step booked, and how warm it is. Nothing sits in a spreadsheet, and nothing is worked twice by accident.

The score column reads zero on purpose. Noodle's scoring and enrichment surfaces are still Coming Soon pages in the version shown here, so there is no engine behind that number yet and none is implied. The board, the stages, the attempt counters and the conversion are what shipped.

The leads board as a kanban: New Lead, Contacted, Qualified, Meeting Scheduled and Proposal Sent columns, each card carrying the person, their company, email and phone, a score, the source it came from, and chips reading no next step, new and cold. A header counts twelve leads, none fully worked, ten in progress and two untouched.
Stages across, and above them the count that actually matters to a manager: twelve leads, ten being worked, two nobody has touched.
A lead record: score, stage, pipeline, owner, source, created and last-activity across the top, a Convert to deal button, an activity timeline showing a call logged with the disposition Meeting Booked and a qualification note about the prospect's yards and systems, and a details panel.
One lead, with the call that moved it and the disposition it earned. When it is real, Convert to deal carries it into the pipeline rather than retyping it.

The chat, over the whole CRM

A question about the pipeline, answered in numbers.

Ask in a sentence and get the figure, the deals carrying it, and the one that matters: the two deals actually dated to close this month are worth $170K on paper and $17K weighted, because both are still sitting at Lead.

Staged, and worth being exact about: unlike the email engine, the chat has no path that runs without a model key, so this conversation was written into the same tables a real one lands in and rendered by the real page. Every number in the answer is true of the pipeline in the screens above it.

The chat: a typed question reading what is my weighted pipeline right now and what is carrying it, answered with 528K weighted across 9 open deals worth 1.13M, the two largest weighted deals named with their stage and probability, and a closing note that the deals due this month carry only 17K weighted.
The answer names the two deals carrying nearly half the weighted number, then points at the two that are dated to close and are not moving.

The work

  1. Stage: points

    The problem

    The team paid enterprise per-seat pricing for a CRM shaped like everyone's business but theirs, used about a tenth of it, and kept the real picture in side spreadsheets. Prospecting was manual, pipeline health was assembled by hand, and every tool held a different version of a deal.

  2. Stage: connections

    What we built

    Noodle, first: a lean CRM with a data model matching how Loop sells (deal economics split across the ERP licence, the NetSuite deal and implementation services; lifecycle stages; lead pipelines; call dispositions), pipeline as board and table, contacts and companies with a full activity timeline, tasks with queues, a calendar, and Gmail and Google Calendar sync so every email and meeting lands on the record. Then the systems around it, deliverable by deliverable: an SDR operating system that plans a rep's day in call blocks with a dial queue; a command center with forecast, pipeline by category and sales performance; a lead engine with de-duplication, ICP filtering and a vendor enrichment adapter; an agent runtime with a review queue so nothing an agent produces reaches a customer without a human verdict; email generation on the record; a company brain that indexes calls, notes, emails and the sales playbook; an AI chat module over the whole CRM; and agentic sequences, in build.

    Real things it has done

    The CRM went from decision to live in weeks and ended the monthly bill for unused seats. A Gmail sync gap around scheduled sends was found and closed with the missed messages recovered, because the sync is watched by an integration-health check rather than trusted. The lead engine checks every new prospect against existing records before spending a credit on it.

    • Next.js
    • React + TypeScript
    • Supabase (Postgres, RLS, auth)
    • tRPC
    • Tailwind CSS
    • Google Workspace APIs
    • Claude
  3. Stage: resolved

    The result

    Noodle is the sales team's main tool, used every day. The Gmail and calendar sync, the SDR OS and the command center are in production; the agent runtime, email generation, the lead engine and the company brain are built and rolling out; agentic sequences are in build. One stack, added to piece by piece, on one data model.

The systems inside

Delivered systems, connected the way they run.

Screenshots stay with the clients; the shape of the work does not.

  1. Noodle CRM
  2. Gmail and calendar sync
  3. SDR OS
  4. Command center
  5. Lead engine and enrichment
  6. Agent runtime and review queue
  7. Company brain and AI chat
  8. Agentic sequences
  • Noodle CRM

    Contacts, companies, deals, leads, tasks and calendar on a data model shaped like how Loop sells. In daily production use.

  • Gmail and calendar sync

    Every email and meeting lands on the record, watched by an integration-health check. In production.

  • SDR OS

    A rep's day planned in call blocks with a dial queue, scoreboard and campaigns. In production.

  • Command center

    Forecast, pipeline by category, sales performance, refreshed on demand. In production.

  • Lead engine and enrichment

    Pulls prospects, drops duplicates, filters to ICP fit, enriches through a vendor adapter. Built, rolling out.

  • Agent runtime and review queue

    Agents run on a schedule; their output waits for a human verdict. Built, rolling out.

  • Company brain and AI chat

    Calls, notes, emails and the playbook indexed; a chat over the whole CRM. Built, rolling out.

  • Agentic sequences

    The sequence itself is the agent: research, draft, send, read the reply. In build.

Evidence at a glance

  • custom CRM in daily production use
  • generic per-seat tool replaced outright
  • every email and meeting synced onto the record
  • an SDR's whole day planned in call blocks
  • no duplicate lead-lookup spend
  • a human verdict on every agent output

From the Systems Library

The reusable patterns behind work like this.

Documented systems from the library in the same territory, each one something we can bring into a project.

  • Featured

    Workflow

    Speed-to-lead pack

    A form fill becomes a booked call in under a minute

    Works with n8n, Make.

    Built and running
  • Agent pack

    Post-call brief to CRM

    The call ends and the CRM is already done

    Works with Claude Code, n8n.

    Built and running
  • Agent pack

    Proposal from call notes

    A priced proposal in twenty minutes, on your own template

    Works with Claude Code, Anthropic API.

    Built and running

Want one of these pointed at your business?