Skip to content

Quotes and Leads

These scheduled jobs look after the sales side of the system: chasing customers who have been sent a proposal, sending material to new leads, reminding customers about tomorrow’s quote appointment, and keeping the estimators, Pipeline and Mailchimp in step. All times are Brisbane time. For the full timetable see the Scheduled Tasks Overview.

Quote statuses referred to on this page are the ones you see on the Quotes list: Pending, Quoted, Pending Deposit, Accepted, Cancelled, Declined, Quote Sent and Draft Sent.

Four emails chase a customer after a proposal is sent. They are driven by the date the latest version of the quote was sent, and each quote keeps three “reminder sent” dates so a customer never receives the same reminder twice.

Every proposal reminder requires all of the following:

  • The quote is in Quote Sent status and has not been turned into a job.
  • The latest quote version is not Declined and has a sent date.
  • The quote’s Reminders field is set to Send (set on the quote page, see Quotes); manually created quotes default to Do not send.
  • The customer’s Notify switch is on.
  • The quote was created after 18 February 2019 (the date the feature was introduced, first reminders only).

Residential, commercial and real estate quotes follow a 1, 2, 3 week rhythm. Body corporate, aged care and education quotes follow a slower rhythm because those decisions go through committees. Small Jobs and Rochele Business quotes never receive automated proposal reminders.

All four emails are sent to the customer’s email address, and appear to come from the estimator (the estimator’s name and email address are used as the sender, falling back to the system address if no estimator is set). Nobody in the office is copied.

First quote reminder (quote:reminder:first)

Section titled “First quote reminder (quote:reminder:first)”
  • Runs: daily at 10:45.
  • Selects: quotes of type Residential Interior, Residential Exterior, Residential Interior & Exterior, Commercial Interior, Commercial Exterior, Commercial Interior & Exterior, Real Estate Exterior, Real Estate Interior or Real Estate Interior & Exterior, whose latest version was sent exactly one week ago today, and that have not had a first reminder.
  • Sends: “Rochele Painting Proposal Follow Up” to the customer. The email says the estimator is following up on the proposal and gives links to view the interactive quote and download the PDF.
  • Changes: stamps the first reminder date on the quote.
  • Where to see it: the quote’s history and the reminder dates on the quote record in Quotes.

Second quote reminder (quote:reminder:second)

Section titled “Second quote reminder (quote:reminder:second)”
  • Runs: daily at 11:15.
  • Selects: the same quote types, latest version sent exactly two weeks ago, first reminder already sent, second not yet sent.
  • Sends: “Rochele Painting Proposal Reminder” to the customer, with a link to view, decline or comment on the proposal and the estimator’s phone and email.
  • Changes: stamps the second reminder date.

Third quote reminder (quote:reminder:third)

Section titled “Third quote reminder (quote:reminder:third)”
  • Runs: daily at 11:45.
  • Selects: the same quote types, latest version sent exactly three weeks ago, first and second reminders sent, third not yet sent.
  • Sends: “Rochele Painting Proposal Soon to Expire” to the customer with a View or Decline Proposal button (wording set by ROCH-2004).
  • Changes: stamps the third reminder date.

First body corporate quote reminder (quote:bodycorp:reminder:first)

Section titled “First body corporate quote reminder (quote:bodycorp:reminder:first)”
  • Runs: daily at 10:45.
  • Selects: quotes of type Body Corporate Interior, Body Corporate Exterior, Body Corporate Interior & Exterior, Aged Care Interior, Aged Care Exterior, Aged Care Interior & Exterior, Education Interior, Education Exterior or Education Interior & Exterior, whose latest version was sent exactly three weeks ago, with no first reminder yet.
  • Sends: the same “Rochele Painting Proposal Follow Up” email as the residential first reminder.
  • Changes: stamps the first reminder date.

Second body corporate quote reminder (quote:bodycorp:reminder:second)

Section titled “Second body corporate quote reminder (quote:bodycorp:reminder:second)”
  • Runs: daily at 11:15.
  • Selects: the same body corporate, aged care and education types, latest version sent exactly nine weeks ago, first reminder sent, second not yet sent.
  • Sends: “Rochele Painting Proposal Reminder”.
  • Changes: stamps the second reminder date.

Third body corporate quote reminder (quote:bodycorp:reminder:third)

Section titled “Third body corporate quote reminder (quote:bodycorp:reminder:third)”
  • Runs: daily at 11:45.
  • Selects: the same types, latest version sent exactly six weeks ago, first and second reminders sent, third not yet sent.
  • Sends: “Rochele Painting Proposal Soon to Expire”.
  • Changes: stamps the third reminder date.

Quote expiring tomorrow email (quote:reminder:expired)

Section titled “Quote expiring tomorrow email (quote:reminder:expired)”
  • Runs: daily at 09:45.
  • Selects: quote versions whose expiry date is tomorrow, where neither the version nor the quote is Pending, Cancelled or Declined, no job has been created, the quote’s Reminders field is set to Send and the customer’s Notify is on. It works on versions, not quotes, and does not use the three reminder dates, so it can send even if the proposal reminders did not.
  • Sends: “Rochele Painting Proposal Expiring” to the customer, from the estimator, with a View or Decline Proposal button and the office number.
  • Changes: nothing.
  • Background: the expiry date is set when the version is sent, based on the quote type’s expiry period: 30 days for residential and most types, 60 days for commercial, 90 days for body corporate (ROCH-1780, ROCH-1916).

Expire stale quote versions (expire_quotes)

Section titled “Expire stale quote versions (expire_quotes)”
  • Runs: monthly, at midnight at the start of the 1st.
  • Selects: every quote version that has not been updated for more than six months, regardless of status.
  • Changes: flags the version as expired. This is separate from the per-type expiry date above; it is a catch-all so very old proposals stop appearing live.
  • Where to see it: expired versions show as expired on the proposal and in Quotes. The decline button stays visible on an expired proposal (ROCH-1968).

Estimator pending quotes reminder (quote:reminder:estimator)

Section titled “Estimator pending quotes reminder (quote:reminder:estimator)”
  • Runs: Fridays at 11:00.
  • Selects: quotes in Pending status (site visited or booked but no proposal sent) created in the last five days, with an estimator assigned, no job and no first reminder sent.
  • Sends: one email per estimator titled “Pending Quotes” listing quote number, customer, address and price, with links into the web app. The Pending Quotes group in CC Emails is copied.
  • Changes: nothing.

Proposal acceptance in progress alert (proposal:acceptance:progress)

Section titled “Proposal acceptance in progress alert (proposal:acceptance:progress)”
  • Runs: daily at 07:00.
  • Selects: quote versions with no job where the customer has opened the online acceptance form and saved progress but has not completed it, and the office has not already been told.
  • Sends: “The quote #… acceptance in progress” to service@rochele.com.au, copied to the Quote acceptance in progress CC Emails group and to the estimator (or the company address if there is no estimator). It shows what the customer filled in so far.
  • Changes: marks the acceptance as notified, so each half-finished acceptance produces one alert.

Quote appointment tomorrow email (notify:customer:quote)

Section titled “Quote appointment tomorrow email (notify:customer:quote)”
  • Runs: daily at 12:00 (moved from 4pm at the request in ROCH-1970).
  • Selects: customers with Notify on who have a quote appointment tomorrow that is not Cancelled and has an estimator assigned.
  • Sends: “Rochele Painting Quote Appointment Reminder” (or “Rochele Painting remote Quote Appointment Reminder” for remote quotes) to the customer, from the estimator. The email introduces the estimator and gives the appointment address and time. For anytime appointments the time is left out.
  • Changes: nothing.
  • SMS: the code contains an SMS version of this reminder but it is switched off; only the email is sent.
  • Jira intent: ROCH-2083 (August 2026) asked for notifications on anytime quotes to be removed because they imply a fixed time. As written, the email still goes to anytime appointments, just without a time. Treat that ticket as the intended direction if you are asked about it.

Daily quote view report (send:report:quote-views)

Section titled “Daily quote view report (send:report:quote-views)”
  • Runs: daily at 06:00.
  • Selects: every time a customer opened a proposal yesterday. For each active estimator it collects views of their quote versions that are still in Pending, Quoted, Quote Sent or Draft Sent. For each active project manager it collects views of quotes where they are the PM (this is how accepted quotes are reported to the PM instead of the estimator, per ROCH-2050).
  • Sends: “Daily Quote View Report - DATE” to the estimator or PM, only if there was at least one view. Each quote version shows how many times it was opened yesterday, total viewing time, when it was last viewed and the all-time view count. Estimators’ reports are blind-copied to Maeve.
  • Changes: nothing.
  • Background: requested in ROCH-1667 so body corporate and strata managers can be followed up while the quote is fresh. Views by logged-in staff are not recorded (ROCH-2050).

Large quotes contacted report (quote:contacted:email)

Section titled “Large quotes contacted report (quote:contacted:email)”
  • Runs: Wednesdays at 10:00.
  • Selects: quotes flagged as large quotes (see Large Quotes) in Pending, Quoted, Pending Deposit or Quote Sent status whose “last contacted” date is within the past eight days.
  • Sends: “Large Quotes Contacted” to the Large Quotes Contacted CC Emails group, listing each quote with its latest note, note type, author, estimator and customer.
  • Changes: nothing. Nothing is sent if no large quotes were contacted.

Process quote duplication queue (duplicate:quote:queue)

Section titled “Process quote duplication queue (duplicate:quote:queue)”
  • Runs: every minute (it is scheduled twice, see the overview).
  • Selects: duplicate requests waiting in the queue. Requests are added when a user duplicates a quote from the iPad app or imports an existing quote onto a lead (ROCH-751).
  • Changes: marks each request as in process, creates the copied quote with the options the user chose, then marks the request completed.
  • Sends: “Quote #… duplicated” to the user who requested it, with a link to the new quote.
  • Where to see it: the new quote appears in Quotes within a minute or two of the request.

Create recurring estimator appointments (quote:recurring:appointment)

Section titled “Create recurring estimator appointments (quote:recurring:appointment)”
  • Runs: Sundays at 00:00.
  • Selects: recurring appointment rules of type “quote” (set up under Recurring Appointments in the web app) that have not yet been generated for the coming week. The job looks two days ahead, so on Sunday night it works on the Monday to Sunday week that starts the next morning.
  • Changes: for each occurrence it creates an internal placeholder quote appointment on the estimator’s calendar: type Rochele Business, customer “Rochele”, address 201 Sandgate Road Albion, with the rule’s comments as notes. It then records the last date generated on the rule.
  • Where to see it: the estimator’s calendar in Appointments. These placeholders are excluded from KPI and reporting because they use the internal customer.
  • Note: the code also contains a branch for recurring project manager visit rules, but this job only asks for quote rules, so PM recurring meetings are handled by the block-out jobs on Jobs and Site Visits instead.

Leads arrive from the website booking form and the info pack, price guide and budgeting tool forms. See Leads for the screen.

  • Runs: daily at 08:30.
  • Selects: leads of type Info Pack that have not yet had the pack sent.
  • Sends: “Your Info Pack From Rochele Painting!” to the lead’s email address.
  • Changes: stamps the pack sent date on the lead so it is not sent again.
  • Runs: daily at 08:35.
  • Selects: leads of type Price Guide that have not yet had the guide sent.
  • Sends: “Your Price Guide From Rochele Painting!” to the lead’s email address.
  • Changes: stamps the price guide sent date on the lead.

Create lead follow-up tasks (create:task:follow-up:lead)

Section titled “Create lead follow-up tasks (create:task:follow-up:lead)”
  • Runs: daily at 00:00.
  • Selects: leads in New, In Progress, Contacted, Unable to Contact or On Hold status that have an owner and a Remind me at date equal to today.
  • Changes: creates a Follow Up task named “Follow up with LEAD NAME”, assigned to the lead’s owner, due tomorrow, marked as assigned by the system user R.O.C.O. The description carries the customer name, address, and clickable phone and email links that log the contact attempt against the lead.
  • Where to see it: Tasks and the Tasks tab on the lead. The owner is emailed about it by the tasks due today job the next morning.

Abandoned booking follow-ups (send:abandoned:cart)

Section titled “Abandoned booking follow-ups (send:abandoned:cart)”
  • Runs: every minute.
  • Selects: leads of type Abandoned Cart, created automatically when someone starts the website booking form but does not finish, and who have not asked for a call back. Timing is measured from when the lead was created:
    • 20 minutes: SMS, if the lead has a phone number.
    • 45 minutes: email, if the lead has an email address.
    • 24 hours: email, and an SMS that is only sent between 7am and 10pm (an SMS due overnight waits for 7am, per ROCH-1994).
  • Sends: the SMS asks “Would you like us to call you to complete your booking?” with a link to continue the booking and a link to request a call back. The email is titled “Complete Your Rochele Painting Booking” and links back to the saved booking.
  • Changes: gives the lead a short link code the first time, and stamps the 24-hour SMS as sent.
  • Background: the sequence was specified in ROCH-1861. If the person requests a call back, all remaining messages stop. See Booking form.

Add and remove residential customers in Mailchimp (add:mailchimp:residential:customer and remove:mailchimp:residential:customer)

Section titled “Add and remove residential customers in Mailchimp (add:mailchimp:residential:customer and remove:mailchimp:residential:customer)”
  • Runs: both daily at 00:00.
  • Add selects: customers who have a residential job (Residential Interior, Exterior or Interior & Exterior) in Paid status with a sub job that started within the last six months. Each is subscribed to (or updated in) the Mailchimp list residential-customers with their name and mobile number.
  • Remove selects: customers who have a residential job with a sub job that started between six and seven months ago. Each is unsubscribed from the same list.
  • Changes: Mailchimp only; nothing changes in the web app.
  • Gotcha: the remove job does not check whether the customer has a newer job. If they do, the add job re-subscribes them the same night, so the net effect is correct but the audience count may flicker. Background in ROCH-573 and ROCH-1322.

Update pipeline sites (update:pipeline:sites)

Section titled “Update pipeline sites (update:pipeline:sites)”
  • Runs: Sundays at 01:00.
  • Selects: customers flagged as body corporate who have at least one quote priced at $100,000 or more.
  • Changes: if the customer already has sites in the Pipeline, each site is refreshed with the latest quote data. If not, a new site is created from the customer’s address, contact numbers, management company and the building name from the lead.
  • Where to see it: Pipeline (formerly the Forecaster, renamed in ROCH-1570).
  • If a customer says they received a reminder for a quote they declined, check the latest version: reminders stop when the latest version is Declined, but an older declined version with a newer sent version will still be chased (ROCH-90, ROCH-420 covered earlier fixes here).
  • To stop all automated chasing on one quote, set Reminders to Do not send on the quote. To stop everything for a customer, turn off Notify on the customer.
  • Reminders key off an exact number of weeks since sending, so a version sent on a Tuesday is chased on Tuesdays.
  • The estimator sees no copy of the proposal reminders. If they want to know a reminder went, they can check the reminder dates on the quote.