5 min

4

From Weekly Recap to Sales Reporting: Requests, Quotes and Revenue Linked to CRM and ERP

Every Monday, I send the whole team a short message about the week’s contact requests. Behind it, a tracking workbook links each qualified request to its status in the CRM, then to its quotes and invoices in the ERP. We no longer count requests: we follow a path, from the request to the signed and invoiced quote.

The problem

The site’s forms land in a shared mailbox, with real projects but also support requests, job applications, cold pitches and spam. Counting requests doesn’t say what the site brings in. The sales team wanted to know how many turn into quotes, how many sign, and for how much. That information lives in three places: the mailbox, the CRM and the ERP.

Source What it provides How I read it
Shared mailbox The request, the stated need, the time I paste the requests into Claude
Web analytics tool The channel of the visit that converted Read through an API, day by day
CRM Lead status, sales status, company status, owner, sales stage Synced into the contact record of the sending platform, read by email address
ERP Quotes (unsigned, signed in progress, lost, signed and invoiced) and their amount excl. VAT Four CSV exports published automatically by sales administration on an internal server

The join key is double. The email address links the request to the contact record. The ERP customer number, stored in that record, then links the contact to their quotes. And one rule avoids false positives: a quote only counts if it was created after the request date. Without it, we would credit the site with an old customer’s quote.

What the procedure does every Monday

It is written in a skill that Claude follows each time.

1. Classify each request I paste, into four statuses:

Status Rule
Qualified project A real organization and a stated need: tool change, volume, quote, presentation
To qualify A real organization, but an empty or too vague form
Off target Existing customer, partnership, job application, cold pitch, spam: counted only
Group internal Mentioned at the end of the list, not counted as a project

A demo request from a real organization is always qualified, even without a comment.

2. Find the source of each request in the web analytics tool.

3. Refresh the CRM and the ERP. A first script downloads the four quote exports and reads each contact’s statuses. A second script files them in the workbook: CRM statuses, number of quotes, numbers and dates, quote status, amount excl. VAT, of which signed amount. It runs in simulation first and shows me what will change, then I authorize the write. When the same quote appears in several exports, the most advanced source wins: signed and invoiced, then signed in progress, then pending, then lost.

4. Compute the summary. Quote conversion rate, signed companies and signed amount, pending companies and pending amount, lost companies and lost amount, leads still at “New” status.

5. Produce the views. A “Week” tab (this week, the previous one, the average of the four before, the total since the site redesign, the chart of the last twelve weeks) and, at month end, a “Month” tab.

6. Write the message and archive: the workbook and the sent text are filed under the day’s date.

What the report looks like

With fictional data. Monday’s message:

Hello all,

Here is the weekly recap of contact requests received on the site
last week (November 2 to 8): 7 requests, including 2 qualified projects.

1. Lumen City Hall (local authority), Tuesday, November 3
Need: replace its sending tool for 40,000 residents, with alert SMS.
Wants a presentation.

2. Lumen Fit (gyms), Thursday, November 5
Need: a demo of the platform.

To qualify: Maison Lumen (Friday), via the contact page, form without detail.

Have a good week!

The monthly recap adds what became of the projects:

Here is the recap of contact requests received in October: 11 qualified
projects, against 8 the month before and 6 on average since the redesign.

Where these projects stand: 4 have received a quote, including 1 signed
(9,000 EUR excl. VAT) and 3 pending (45,000 EUR excl. VAT). The other 7
have no quote yet.

Where they come from: 8 through the contact form, 3 through the demo request.

What to keep in mind when reading it

  • Amounts are orders of magnitude. They are the sum of the quote lines, options included, not revenue. Invoicing shows up through the “signed and invoiced” status.
  • Percentages are fragile. With about a dozen projects a month, a single quote moves the rate. I never compare with the same month of the previous year.
  • Statuses depend on the salespeople. The count of leads left at “New” also shows what hasn’t been handled.

What got in the way

  • A contact with no ERP customer number has no visible quotes, even if they have some. As long as the record isn’t linked to the customer in the CRM, the report shows “no quote”.
  • Several quotes for the same customer, including an old one: hence the filter on creation date.
  • The masked source. The form is hosted on a different domain from the site: many requests seemed to come from that domain. The rule: write “source not identifiable” rather than invent one.
  • Untracked visits. A request with no conversion on the same day comes from a visitor who declined cookies. Claude writes it as is.
  • The open workbook. If I leave it open in the spreadsheet, the write fails: I close it before running the update.
  • Rules change with use. Demo always qualified, chronological order rather than “hottest first”, source removed from the message but kept in the tracking: feedback from the team, added to the skill over the weeks.

Confidentiality

The message goes to the whole team: no email or phone number of the contact, only the organization. The CRM and ERP login credentials are in an environment file, never in the skill, and the exports are read-only.

Key takeaway

The recap now takes only a few minutes and always comes out in the same format. Above all, the request is no longer an end point: we follow it to the quote and the invoice, with the same written rules at each step. When someone asks why a request isn’t counted, or what the site brought in, the answer is in the workbook and in the skill.

Read next

1:1Daily Lemlist Task Reminders in 1:1 Teams Chats with n8n34The Rules My AI Agent Learned From Its Mistakes2Copilot or Claude for a Marketing Project Manager?