~1,440
SMS/month — WF 1 (Indeed)
~2,000
SMS/month — WF 2 (city blasts)
~2,000
SMS/month — WF 3 (cold leads)
Recommended plan — choose this when reactivating
10,000 credits/month — ~$339/month
If Salesmsg shows a different price, take a screenshot and confirm with Peter before paying. Do not select a lower tier.

All plan tiers

PlanCredits/monthApprox cost
Starter2,500~$99/month
Standard5,000~$179/month
Growth7,500~$249/month
10,000+ credits10,000~$339/monthChoose this
Custom10,000+Contact Salesmsg sales
Why 10,000 and not 7,500: The 7,500 plan puts you within 1,500–2,500 credits of your ceiling every single month. One active week of Workflow 3 cold blasts would push you over, causing interrupted sends and overage charges. The 10,000 plan gives you real breathing room.

Additional costs to know

ItemCostFrequency
A2P 10DLC Brand Registration~$4.50One-time
A2P Campaign Registration~$10–15Per campaign/month
T-Mobile Campaign Activation$50One-time per campaign
Carrier pass-through feesVariableBilled end of month
Failed message fee$0.001/msgPer failed message

Total estimated all-in monthly cost: approximately $360–$420/month. Confirm exact pricing with Salesmsg before activating.

HubSpot marketing contacts note: All three workflows mark contacts as Marketing Contacts at the start and remove them at the end. With 10,000 contacts in HubSpot, confirm with Peter how many marketing contacts your Enterprise plan includes before running Workflow 3 cold blasts at scale. Check at: Settings → Account & Billing → Contacts.
1
Log into Salesmsg

Go to app.salesmessage.com. Use the One Janitorial credentials. If you don't have them, ask Peter before proceeding. If the account is suspended you will see a red or yellow banner at the top of the screen — click it to begin.

2
Select the 10,000 credit plan

Go to Settings → Plan & Billing (click your profile icon top right, then Settings). Click the green Upgrade or Reactivate Plan button. Use the pricing slider to select the 10,000 credit plan at approximately $339/month. If the price shown is different, screenshot it and confirm with Peter before paying. Enter or confirm the payment method on file. Click Confirm.

3
Reconnect HubSpot

Go to Settings → App Marketplace → HubSpot. If it shows Disconnected or a red status, click it and follow the prompts to re-authorize. You will be redirected to HubSpot to log in and confirm. When done it should show a green Connected status. If you have trouble, use Salesmsg live chat (bottom right corner of any page).

4
Confirm phone numbers are active

Click Inbox in the left sidebar of Salesmsg. Confirm your business number(s) appear and are active. If any number shows as inactive or suspended, contact Salesmsg support via live chat immediately and do not proceed with workflow setup until it is resolved.

5
Check A2P 10DLC compliance registration

Go to Settings → Compliance (sometimes listed as Settings → 10DLC). Without this registration your messages will be blocked or filtered by carriers and will not reach anyone.

Brand Registration (~$4.50 one-time)

Enter your business legal name, business number, website URL, and contact info. Submit and wait 1–5 business days for approval.

Campaign Registration (~$10–15/month per campaign)

Use case description: subcontractor recruitment outreach. You may need a separate campaign registration for recruitment (WF1/WF3) vs. city blasts (WF2). Confirm with Salesmsg support.

Do not send any bulk texts until registration is fully approved. Sending before approval results in messages being blocked and can get your number permanently flagged. Approval takes 1–5 business days.
Both Workflow 1 and Workflow 3 send the same Round Robin calendar link. Contacts can only book within the next 5 days — this gives them enough time to complete the required HubSpot form and their Trainual training before the meeting, but not so much time that they procrastinate.
1
Go to Sales → Meetings in HubSpot

Check if a subcontractor intro call meeting link already exists. If it does, click it and confirm the settings match the steps below before using it. If not, continue.

2
Create the meeting link

Click Create meeting link (top right). Select Round Robin — this automatically rotates the booking among all available BCO reps based on their live calendar availability. Name it: Subcontractor Intro Call – One Janitorial.

3
Configure the round robin settings
Team membersAdd all BCO reps to the rotation
Duration15 minutes
Available hoursMon–Fri, 9am–5pm local time
Buffer time10 minutes between meetings
Max days out5 days only — must set this limit

Each BCO rep must connect their own calendar individually: Profile & Preferences → Calendar → Connect Google Calendar or Outlook. Without this their availability will not appear and they will not receive bookings.

4
Confirmation email and form fields

Toggle Confirmation email ON. Set the confirmation message to: "You're confirmed! One of our team members will call you at the time you selected. Talk soon."

Under Form fields, confirm the booking page collects: First Name, Last Name, Phone Number, City.

5
Assign Contact Owner on booking

In the meeting link settings, find the option to assign the rep who receives the booking as the Contact Owner on the contact record. Enable this. Whoever the contact books with becomes their named contact in HubSpot going forward — this is how the email is personalized and how accountability is tracked.

6
Copy and save the meeting link URL

After saving, copy the meeting link URL. Keep it somewhere accessible — you will paste it into the qualified text message in both Workflow 1 and Workflow 3. Every time you build those workflow steps, paste this same link.

5-day booking window is mandatory. The form must be completed before the meeting can proceed. If a contact books too close to the 5-day limit and needs more time, they can email alliance@onejan.com to reschedule. The Trainual training takes a few hours — 5 days gives them enough time to complete both.
These properties have already been built and verified in HubSpot by Peter. You do not need to create anything. Before building the workflows, follow the steps below to confirm both properties are present and have the correct values.

How to verify

1
Go to Settings → Properties

Click the gear icon (top right in HubSpot). Go to Properties. Make sure you are on the Contact properties tab.

2
Search for each property

Search for each name below and confirm it exists with all the listed values. Do not change or delete any existing values.

Alliance Scouting Stage

ValueSet by
New ApplicantManual entry
ContactedManual entry
Not Interested in OpportunityWF1, WF3 — contact says No or fails Q1
Does Not QualifyWF1, WF3 — contact fails Q2 or Q3
Introduction Call ScheduledWF1, WF3 — contact qualifies and gets link
No Response – 5 AttemptsWF1 (after 3 follow-ups), WF3 (after 5 follow-ups)

BCO/HR – Cleaner Readiness

ValueSet by
Wanting MoreWF2 — contact says Yes
Not InterestedWF2 — contact says No or no reply after 3 follow-ups
AvailableManual entry
No Response – 5 Attempts already exists in the dropdown. Use it exactly as written. This value is applied at the end of the no-reply sequence in both Workflow 1 (after 3 attempts) and Workflow 3 (after 5 attempts).

Trigger conditions — AND logic, all three must be true

Create dateis equal toToday
and
Contact typeis equal toPartner Prospecting
and
Lead sourceis equal toIndeed
Re-enrollment: OFF — a contact goes through this once only. Do NOT manually enroll contacts. The trigger fires automatically when you create the contact correctly.

First action — before any message is sent

Set: Marketing contact status → Marketing contact

This must be the very first action in the workflow. Required for automated email sends.

Action 1 — Initial outreach text

One Janitorial → Contact
"Hey! One Janitorial here — we noticed you applied for a janitorial subcontracting opportunity. Are you still looking to take on contracts?"

Action 2 — Branch on reply

Yes (yes / yeah / yep / sure / interested / absolutely / definitely)

→ Go to Action 4 — Question 1

No

→ Go to Action 3 — Rejection

Action 3 — No: rejection text

"Hey! No worries at all — thanks for letting us know. If anything changes and you're ever looking to subcontract with a commercial cleaning company, feel free to reach out anytime. Take care!"
Set: Alliance Scouting Stage → Not Interested in Opportunity
End of workflow — set Marketing contact status → Non-marketing contact

Action 4 — Question 1

"Hey! Awesome — we have 3 quick questions, and if you qualify, we'd love to set up a short call with you. First question: Do you currently operate your own cleaning company or do subcontracting work?"
Yes

→ Go to Action 5 — Question 2

No
"Hey! Thanks so much for letting us know — right now we're specifically looking for subcontractors who already have an operating cleaning business. If that changes in the future, reach back out — we'd love to work with you!"
Set: Alliance Scouting Stage → Not Interested in Opportunity
End of workflow — set Marketing contact status → Non-marketing contact

Action 5 — Question 2

"Great! Second question: Do you have a partner or family member who cleans with you and is trained in the work?"
Yes

→ Go to Action 6 — Question 3

No
"Hey! Thanks for letting us know — we're currently looking for teams with trained partners and verified references. If anything changes down the road, don't hesitate to reach back out!"
Set: Alliance Scouting Stage → Does Not Qualify
End of workflow — set Marketing contact status → Non-marketing contact

Action 6 — Question 3

"Almost there! Last question: Do you have references from businesses you've cleaned for who can give you strong reviews?"
Yes — qualified

→ Go to Action 7 — calendar link

No
"Hey! Thanks for letting us know — we're currently looking for teams with trained partners and verified references. If anything changes down the road, don't hesitate to reach back out!"
Set: Alliance Scouting Stage → Does Not Qualify
End of workflow — set Marketing contact status → Non-marketing contact

Action 7 — Qualified: send calendar link

"Hey! Fantastic — you qualify! Here's a link to book a quick call with one of our team members. They'll walk you through our programme and get you started: [PASTE HUBSPOT MEETINGS ROUND ROBIN LINK — 5 DAY MAX BOOKING]"
Set: Alliance Scouting Stage → Introduction Call Scheduled

Action 8 — Send the qualification email

Add action: Send email. Select the Alliance-E Qualification Email template (see the Email section of this guide for the full template and setup instructions). This email is sent to every contact who qualifies and receives the calendar link.

End of workflow — set Marketing contact status → Non-marketing contact

No-response follow-ups — apply after Action 1 and Action 7

After each of these two messages, if no reply is received within 8 hours, send a follow-up. Repeat up to 3 times. To build this: after the send action, add a Delay of 8 hours, then an If/then branch checking whether Salesmsg Last SMS Reply Date is after the timestamp of the last sent message. If YES → skip follow-up and continue. If NO → send next follow-up text.

Follow-up sequence — 3 attempts, 8 hours apart
Follow-up 1 — 8 hours, no reply
"Hey! Just wanted to make sure my last message came through — still interested in taking on cleaning contracts with One Janitorial?"
Follow-up 2 — 8 hours later, still no reply
"Hey! Following up one more time from One Janitorial — we have some great opportunities available right now. Still looking?"
Follow-up 3 — 8 hours later, still no reply
"Hey! Last check-in from One Janitorial — if now's not a good time, no worries at all. Feel free to reach out whenever you're ready. We'd love to work with you!"
After Follow-up 3 with no reply: Set Alliance Scouting Stage → No Response – 5 Attempts
End of workflow — set Marketing contact status → Non-marketing contact
Reminder — end of every branch: Every single path in this workflow must end with setting Marketing contact status to Non-marketing contact. After building each branch, spot-check a test contact record to confirm the field updates within a few minutes. If it hasn't updated after 10 minutes, go to the contact record → Actions menu → Set as non-marketing contact manually.
This workflow is not triggered automatically. Gelber manually selects contacts in a specific city and enrolls them each time new buildings become available. Run this daily if needed, up to 20 contacts per batch.

Create the workflow

NameAlliance Cleaner City Outreach SMS
TriggerContact is enrolled manually
Re-enrollmentON — contacts can be re-blasted for new buildings if not already Not Interested

First action — before any message is sent

Set: Marketing contact status → Marketing contact

Action 1 — Initial outreach

Use the City personalization token — click the personalization icon when composing in HubSpot and search for City. This auto-fills the contact's city from their record.

"Hey! One Janitorial here — we have buildings coming available in [City] and thought of you. If you're looking to take on more contracts, let us know!"
Yes
"Hey! Awesome — let's set up a quick call to go over the details and match you to a building. Here's the link to pick a time: [PASTE HUBSPOT ROUND ROBIN MEETINGS LINK]"
Set: BCO/HR – Cleaner Readiness → Wanting More
End of workflow — set Marketing contact status → Non-marketing contact
No
"Hey! No problem at all — thanks for letting us know. If anything changes and you're looking for more work, just reach out. We'd love to help. Take care!"
Set: BCO/HR – Cleaner Readiness → Not Interested
End of workflow — set Marketing contact status → Non-marketing contact

No-response follow-ups — 3 attempts on Action 1

Follow-up sequence — 3 attempts, 8 hours apart
Follow-up 1 — 8 hours, no reply
"Hey! Just checking in from One Janitorial — we have buildings in [City] right now if you're looking for more contracts. Interested?"
Follow-up 2 — 8 hours later, still no reply
"Hey! One Janitorial again — still some spots available in [City]. Would love to get you set up if the timing works. Let us know!"
Follow-up 3 — 8 hours later, still no reply
"Hey! Last message from One Janitorial for now — if you ever want to learn more about available buildings in [City], just reply anytime. No pressure!"
After Follow-up 3 with no reply: Set BCO/HR – Cleaner Readiness → Not Interested
End of workflow — set Marketing contact status → Non-marketing contact

How to run a city blast — Gelber's daily task

1
Filter contacts in HubSpot

Go to Contacts → Contacts. Click Add filter. Set: City = the city you want (e.g. Brampton). Add another filter: BCO/HR – Cleaner Readiness = is unknown OR is not equal to Not Interested AND is not equal to Wanting More. This filters out anyone already contacted or already flagged.

2
Select up to 20 contacts

Use the checkboxes on the left side of each row. Do not enroll more than 20 at a time.

3
Enroll in workflow

Click Actions → Enroll in workflow → select Alliance Cleaner City Outreach SMS → Confirm enrollment. Texts go out automatically from here.

These are contacts already in HubSpot under Partner Prospecting who have never been worked — their Alliance Scouting Stage is completely blank. This workflow sends up to 5 outreach attempts. If they respond Yes at any point they are routed through the same 3 qualification questions as Workflow 1.

Trigger conditions — AND logic

Contact typeis equal toPartner Prospecting
and
Alliance Scouting Stageisunknown (field is completely blank — no value ever set)
Re-enrollment: OFF — once a contact goes through this workflow they do not re-enter it.

First action — before any message is sent

Set: Marketing contact status → Marketing contact

Action 1 — Initial outreach

"Hey! One Janitorial here — we have buildings available in [City] and thought you might be interested in subcontracting opportunities. Still open to it?"
Yes

→ Jump directly to Qualification Questions below

No
"Hey! No problem at all — thanks for letting us know. If anything changes and you're ever looking for subcontracting opportunities with One Janitorial, we'd love to hear from you. Take care!"
Set: Alliance Scouting Stage → Not Interested in Opportunity
End of workflow — set Marketing contact status → Non-marketing contact

No-response follow-up sequence — 5 attempts

After each message with no reply: Delay 8 hours → check for reply → if YES jump to qualification questions → if still no reply send next follow-up. If the contact replies YES at any point during the 5 attempts, they immediately branch into the qualification questions below.

5 attempts, 8 hours apart — YES at any point routes to qualification
Follow-up 1 — 8 hours, no reply
"Hey! One Janitorial here — just following up. We have buildings available in [City] right now. Still looking for subcontracting work?"
Follow-up 2 — 8 hours later, still no reply
"Hey! One Janitorial again — wanted to make sure this didn't get lost. Great opportunity available in [City] if you're interested. Let us know!"
Follow-up 3 — 8 hours later, still no reply
"Hey! Checking in one more time — One Janitorial has a building in [City] that could be a great fit. Still open to subcontracting opportunities?"
Follow-up 4 — 8 hours later, still no reply
"Hey! One Janitorial here — still have opportunities in [City] available. If you ever want to learn more, just reply and we'll pick right up. No pressure!"
Follow-up 5 — 8 hours later, final attempt
"Hey! One Janitorial here — we've reached out a few times about a subcontracting opportunity in [City]. We'll leave it here for now — if you ever change your mind, we'd love to hear from you. Take care!"
After Follow-up 5 with no reply: Set Alliance Scouting Stage → No Response – 5 Attempts
End of workflow — set Marketing contact status → Non-marketing contact

Qualification Questions — triggered when YES at any point

Question 1

"Hey! Awesome — One Janitorial has a few quick questions before we connect. First: Do you currently operate your own cleaning company or do subcontracting work?"
Yes

→ Question 2

No
"Hey! Thanks so much — right now we're specifically looking for subcontractors who already have an operating cleaning business. If that changes, reach back out — we'd love to work with you!"
Set: Alliance Scouting Stage → Not Interested in Opportunity
End of workflow — set Marketing contact status → Non-marketing contact

Question 2

"Great! Second question: Do you have a partner or family member who cleans with you and is trained in the work?"
Yes

→ Question 3

No
"Hey! Thanks for letting us know — we're looking for teams with trained partners and verified references right now. If anything changes in the future, don't hesitate to reach out!"
Set: Alliance Scouting Stage → Does Not Qualify
End of workflow — set Marketing contact status → Non-marketing contact

Question 3

"Almost done! Last question: Do you have references from businesses you've cleaned for who can give you strong reviews?"
Yes — qualified!

→ Send calendar link below

No
"Hey! Thanks for letting us know — we're looking for teams with trained partners and verified references right now. If anything changes in the future, don't hesitate to reach out!"
Set: Alliance Scouting Stage → Does Not Qualify
End of workflow — set Marketing contact status → Non-marketing contact

Qualified — send calendar link

"Hey! Fantastic — you qualify! One Janitorial would love to connect with you. Click the link below to book a quick call and one of our team members will walk you through everything: [PASTE HUBSPOT ROUND ROBIN MEETINGS LINK — 5 DAY MAX BOOKING]"
Set: Alliance Scouting Stage → Introduction Call Scheduled

One follow-up if no booking after 8 hours:

"Hey! Just wanted to make sure you got the booking link from One Janitorial — here it is again if you need it: [PASTE LINK]. Looking forward to connecting!"

Send qualification email

Add action: Send email. Use the Alliance-E Qualification Email template (same template as Workflow 1 — see the Email section of this guide).

End of workflow — set Marketing contact status → Non-marketing contact

Optional safety net — auto-update on actual booking

Create a separate simple workflow: Meeting Booked — Update Alliance Stage
TriggerMeeting is booked → type = Subcontractor Intro Call
Set: Alliance Scouting Stage → Introduction Call Scheduled
Set: Marketing contact status → Non-marketing contact

This fires the moment someone actually books, not just when the link was sent. Acts as a more accurate backup to the property set in the main workflow.

Reminder — end of every branch: Every single path in Workflow 3 must end with setting Marketing contact status to Non-marketing contact. Check every branch when building. Spot-check a test contact record after enrolling to confirm the field updates correctly.
Build this template once in HubSpot under Marketing → Email → Create email → Automated. Name it Alliance-E Qualification Email. Use the same template for both Workflow 1 and Workflow 3. Set the sender as Contact Owner so each contact receives the email from the rep they booked with.

How to build it in HubSpot

1
Go to Marketing → Email → Create email → Automated

Select a simple single-column template. Keep it clean and readable.

2
Set sender as Contact Owner

In the From field, select Contact Owner. This means whoever the contact booked their intro call with will appear as the sender — personalizing the email and establishing that rep as their point of contact.

3
Add the form link

Go to Marketing → Forms, find the existing subcontractor info form, copy the link. Paste it into Point 1 of the email body where indicated below.

4
Save and name it: Alliance-E Qualification Email

This is the template name you will select in Workflow 1 Action 8 and Workflow 3 Step 7.

Email template

Contact owner sender setup: When the sender is set to Contact Owner, each contact receives the email from the rep they booked with. This is how the rep becomes their named contact from the very first email. Make sure every BCO rep has their email address properly set up in their HubSpot profile before activating either workflow.

In Salesmsg — primary inbox

1
Log in and open your inbox

Go to app.salesmessage.com. Click Inbox in the left sidebar. Filter by Unread to see all contacts who have replied and not yet been handled.

2
Read and respond

Click any conversation to see the full thread. If someone sent a long or unclear reply that the workflow cannot branch on — for example, a full paragraph instead of yes or no — you need to manually reply to them and manually update their Alliance Scouting Stage property in HubSpot to the correct value.

3
Set up notifications so you never miss a reply

Go to Settings → Notifications. Turn on browser notifications and email notifications for new inbound messages. Download the Salesmsg mobile app and enable push notifications — you will see replies in real time on your phone.

In HubSpot — contact-level view

1
Open the contact record

Go to Contacts → Contacts. Search for the contact name. Open their record. In the Activity feed on the right, filter by SMS to see every message sent and received with full timestamps.

2
Send a manual one-off text

Use the Salesmsg widget on the right panel of any contact record to send a text directly without going through a workflow. Use this when you need to handle a reply that fell outside the yes/no branching logic.

3
Check the Conversations inbox

Go to Conversations → Inbox in HubSpot. If Salesmsg is connected as a channel (Farouk may have set this up), all inbound SMS replies will appear here alongside emails — one unified inbox view.

Manual override situations: If a contact writes something like "maybe" or "I'm interested but not right now" the workflow will not know how to branch them. You need to manually assess, reply, and update their Alliance Scouting Stage property to the appropriate value in HubSpot. Do not leave these contacts in limbo — check the inbox every morning.
Salesmsg automatically logs all SMS activity to the HubSpot contact timeline. This means HubSpot can report on it. Build the following dashboard once and use it every week to track all three workflows.

Create the dashboard

1
Go to Reports → Dashboards

Click Create dashboard (top right). Name it: SMS Recruitment Dashboard. Set visibility to Private or share with your team as preferred.

2
Add each report below

Click Add report inside the dashboard and build each report as described. Save each one to the dashboard.

Reports to build

Report 1 — Contacts by Alliance Scouting Stage
Shows how many contacts are in each stage across all workflows at any given moment. Use bar or pie chart. This is the most important weekly snapshot — it tells you how many people are qualified, disqualified, not interested, no response, and scheduled.
Reports → Create report → Contact report → Group by: Alliance Scouting Stage
Report 2 — Contacts by BCO/HR Cleaner Readiness
Shows the result breakdown from Workflow 2 city blasts. Tells you how many existing cleaners are wanting more work, not interested, or still available.
Reports → Create report → Contact report → Group by: BCO/HR – Cleaner Readiness
Report 3 — Workflow enrollment over time
Shows how many contacts went through each of the three workflows week over week. Useful for tracking activity volume and identifying slow weeks.
Reports → Create report → Contact report → Filter by workflow enrollment for each workflow name
Report 4 — Meetings booked
Shows how many intro calls were booked as a result of the SMS qualification flows. Filter by meeting type and outcome to see scheduled vs. completed vs. no-show.
Reports → Create report → Activities report → Filter: Activity type = Meeting, Outcome = Scheduled or Completed
Report 5 — Active marketing contacts (live count)
Shows in real time how many contacts are currently marked as Marketing contact. Use this during your weekly cleanup to spot contacts that should have been removed but were not.
Reports → Create report → Contact report → Filter: Marketing contact status = Marketing contact
Report 6 — No Response – 5 Attempts contacts
Tracks how many contacts went through the full follow-up sequence in WF1 or WF3 without ever responding. Peter can review this monthly to decide whether to re-approach or remove these contacts from the database.
Reports → Create report → Contact report → Filter: Alliance Scouting Stage = No Response – 5 Attempts

Checking message volume

In Salesmsg

Settings → Plan & Billing: Credit balance, credits used this month, plan type, and full fee breakdown. Check every Monday.

Reports → Messaging: Full breakdown of messages sent and received, filterable by date range, inbox, or team member.

In HubSpot

Automation → Workflows → [Workflow Name] → History: Every contact enrolled, every step they reached, any errors, and timestamps on all actions. Check this weekly for all three workflows.

Every contact is automatically marked as a Non-marketing contact at the end of each workflow. However, contacts can occasionally get stuck mid-workflow or the property action can take a few minutes. This weekly task makes sure nothing slips through and your HubSpot billing stays accurate.

Step 1 — Find and remove lingering marketing contacts

1
Filter for all active marketing contacts

Go to Contacts → Contacts. Click Add filter. Set: Marketing contact status = is equal to → Marketing contact. This shows every contact currently marked as a marketing contact.

2
Review the list

Anyone appearing here who is not currently actively mid-workflow should not be here. If you are unsure whether a contact is mid-workflow, check the workflow History tab (Automation → Workflows → [name] → History) and look for their name.

3
Bulk remove

Select all contacts that are not actively mid-workflow. Click Actions → Set as non-marketing contact to remove them in bulk.

4
Spot-check

After bulk removal, manually open 3–5 individual contact records and confirm the Marketing Contact Status field shows Non-marketing contact. HubSpot can take a few minutes to process bulk changes. If a contact still shows Marketing contact after 10 minutes, go to their record → click the Actions menu at the top → Set as non-marketing contact manually.

Step 2 — Weekly stage count review

While you are in HubSpot, also pull a quick count of each stage to report to Peter. Use Add filter in Contacts → Contacts and filter each stage below:

Stage to checkPropertyFilter value
Intro calls scheduledAlliance Scouting StageIntroduction Call Scheduled
Does not qualifyAlliance Scouting StageDoes Not Qualify
Not interestedAlliance Scouting StageNot Interested in Opportunity
No responseAlliance Scouting StageNo Response – 5 Attempts
Wanting more work (cleaners)BCO/HR – Cleaner ReadinessWanting More

To export any list as a spreadsheet: click Actions → Export after filtering.

Do not skip the spot-check. Bulk property updates in HubSpot are not always instant. Always verify 3–5 individual records after doing a bulk removal. If you notice contacts repeatedly appearing in the marketing contact filter week after week, flag it to Peter — it means a workflow end-of-branch action may be missing.

Every morning

  • Log into Salesmsg — filter Inbox by Unread and handle all replies
  • Manually respond to any contacts whose message did not match a clear yes or no
  • In HubSpot, check for contacts stuck on a workflow step for more than 24 hours
  • If running a city blast: filter by city, confirm contacts not already Not Interested or Wanting More, select up to 20, enroll in Alliance Cleaner City Outreach SMS

When entering new Indeed applicants

  • Create the contact in HubSpot
  • Set Contact Type = Partner Prospecting
  • Set Lead Source = Indeed
  • Confirm Create Date = today (HubSpot auto-fills but double check)
  • Do NOT manually enroll in Workflow 1 — the trigger fires automatically

Every Monday morning (recurring calendar task)

  • Go to Salesmsg Settings → Plan & Billing — check credits used vs. remaining
  • If above 8,000 credits used, flag to Peter immediately before the month resets
  • Go to HubSpot Automation → Workflows — check History on all three workflows for errors or stuck contacts
  • Run the marketing contacts cleanup audit (see Weekly Cleanup section)
  • Pull stage counts from HubSpot and report totals to Peter
  • Check the SMS Recruitment Dashboard for any anomalies

Alliance Scouting Stage updates

ScenarioWorkflowNew value
Contact says No to initial outreachWF1, WF3Not Interested in Opportunity
Contact fails Q1 — no operating companyWF1, WF3Not Interested in Opportunity
Contact fails Q2 or Q3 — no partner or no referencesWF1, WF3Does Not Qualify
Contact qualifies — receives calendar linkWF1, WF3Introduction Call Scheduled
No reply after all follow-up attemptsWF1 (3 attempts), WF3 (5 attempts)No Response – 5 Attempts

BCO/HR – Cleaner Readiness updates

ScenarioWorkflowNew value
Contact says Yes to city blastWF2Wanting More
Contact says No to city blastWF2Not Interested
No reply after 3 follow-upsWF2Not Interested

Marketing contact status — every workflow, every branch

WhenAll workflowsNew value
Start of every workflow — before any message is sentWF1, WF2, WF3Marketing contact
End of every branch — every path, no exceptionsWF1, WF2, WF3Non-marketing contact

No-response follow-up counts by workflow

WorkflowFollow-ups applied toNumber of attemptsFinal property if no reply
WF1 — New Alliance Applicant SMSInitial text + calendar link text3 eachNo Response – 5 Attempts
WF2 — City Outreach SMSInitial text only3Not Interested
WF3 — Building Offer SMSInitial text only5No Response – 5 Attempts
Questions? For any issues with Salesmsg, contact Salesmsg live chat support at app.salesmessage.com (bottom right corner). For HubSpot workflow issues, contact Peter or check the workflow History tab in HubSpot. For all alliance programme questions from contacts, direct them to alliance@onejan.com.