It took me a while to get the obvious. Accepting an invite on LinkedIn says nothing about wanting to buy. It says my profile looked professional enough that the person didn't assume I was about to push a course. That's all it says.

So we stopped selling on day one and built a cadence instead: five touches spread over 26 days, each doing a different job. Reply rates went from somewhere near nothing to around 10%.

The bottleneck turned out not to be the copy. It was remembering. Five touches per contact, fifteen new contacts a day, each touch landing on a different calendar day: by week three you have a hundred-odd commitments scattered around and no chance of holding them in your head. Miss the third touch and you've thrown away the first two, because most replies arrive on the third or fourth contact.

What follows is how we built that into Freshsales. Field by field, workflow by workflow. It fits in one afternoon, and the same shape works on any CRM that can create a task from a rule.

What we're building

The result looks like this: you open Freshsales in the morning and today's tasks are sitting there. Each one carries the LinkedIn profile link at the top and the message copy in the description, so nothing needs to be looked up. You do the touch, close the task, pick a result. The next task is born on its own, with the right date.

The cadence itself is the thing being automated, so it's worth looking at first.

Five touches, 26 days

T0 · Like or comment on a post

Born together with T1, due the next day. Open the profile, engage with a recent post, send no message today. A comment beats a like as long as it carries something.

Due 1 day after the accept. If the profile has no posts, close the task anyway.

T1 · The first message

Three lines: thank them, cite the trigger, ask an easy question. The copy comes ready in the task description, with the name and the platform already filled in.

Due 3 days after the accept. No link, no attachment, no meeting request.

T2 · Give something, ask nothing

One link, something genuinely useful, and the message says out loud that you are not expecting a reply. The topic has to match the trigger.

Due 5 days after T1 goes out. Never ask whether they saw the previous message.

T3 · A 40-second voice note

Recorded by hand in the phone app. Cite the trigger, name the three things you would look at in their operation, ask for 20 minutes with an agenda.

Due 7 days after T2. No automation sends voice notes on LinkedIn, this part is yours.

T4 · Close with the door open

You say you are going to stop writing and leave a concrete condition for coming back. This one pulls more late replies than any other touch.

Due 11 days after T3. After it, the contact stays off every list for six months.

Anyone who replies at any point leaves the cadence immediately. Nobody gets all five touches once they have talked to you.

Click a touch. Note the due dates: they are counted from the previous step, not from day zero. That detail decides how the workflows get built.

Three rules the CRM has to hold

Automation is worth building only when it protects a rule you would otherwise break on a busy Tuesday. There are three of those here, and each one turns into a piece of configuration further down.

No trigger, no message. A trigger is an observable sign that it makes sense to talk to this person now, something concrete you saw, with a link. "The company looks about the right size" is not one. Ten contacts with a trigger beat a hundred without, because the trigger is what makes the first message read like it was written for that person. In step 3 this becomes a condition on the workflow, so a contact with no trigger simply never starts a cadence.

Fifteen new contacts a day, maximum. Above that LinkedIn starts throttling invites, and worse, the tasks pile up faster than anyone executes them. In step 2 this becomes the one gesture we deliberately left manual.

Whoever replies leaves the cadence immediately. Nobody should receive touch 3 after they've already answered touch 2. In step 5 this becomes an outcome that stops the chain.

The triggers are worth listing, because in a minute they become the values of a dropdown.

The six triggers
01

Public help center

Search Google for company.freshdesk.com or company.zendesk.com. The subdomain hands you the platform without you asking anyone.

02

Open job posting

A support analyst role naming the tool. It tells you the platform, the size of the team and sometimes the pain itself.

03

New head of CX

Changed roles in the last 90 to 180 days. That's the window where someone wants to change something and still has the political budget for it.

04

A post about CX

They published or commented on support, AI, automation. Gives you a subject and proof that the topic is already on their mind.

05

A referral

A client or partner mentioned the name. Strongest trigger of all. Use the name of whoever referred them in the first line.

06

An event

They attended a webinar, a trade show, an industry group. Shared context that justifies reaching out.

Six values, closed list. This is the dropdown from step 1.

Step 1: the five fields

Everything goes on the Contact, nothing on the Deal. There is no deal yet, and there won't be one for weeks. A cadence that lives on a deal record forces you to invent a deal in order to send a message, which pollutes your pipeline with fiction.

In the admin settings, under contact customization, create these five.

Custom fields on the Contact
Support platform Dropdown

Freshdesk · Zendesk · Movidesk · Other

Free text does not filter. You will want a view that says platform is Zendesk, and one day you will want to count them.

Trigger Dropdown

The six from the list above

The workflow checks this field before opening a cadence. Leave it empty and nothing fires, which is how the rule stops depending on your discipline.

Cadence stage Dropdown

Invite sent · Accepted · T1 sent · T2 sent · T3 sent · Closed · Replied

This is the engine. Every automation listens to changes on this one field and nothing else. Keep the list short and never rename a value once workflows point at it.

T1 variant Dropdown

Observation · Diagnostic · Authority

Stays empty until the day T1 goes out. Three months from now it is the only way to know which approach gets answered.

LinkedIn profile URL

Full URL, no shortening

This is the link the task opens every single day. Use the URL type so it becomes a click instead of a copy and paste.

Four dropdowns and one URL. Everything else the cadence needs already exists on a standard contact.

One value is missing from the stage list on purpose: there is no "T0 done". T0 is born together with T1 and dies on its own, without moving the stage. If it moved the stage, you'd need a workflow for it, and that workflow would need to know whether T1 was already created. Small omissions like this one are what keep an automation readable six months later.

Step 2: the one manual gesture

Creating the contact fires nothing. You research the company, fill in the platform and the trigger, send the invite, and set the stage to "Invite sent". Freshsales ignores all of it.

When the person accepts, you open the contact and change the stage to "Accepted". That is the only thing a human types into this machine.

It's tempting to trigger everything on contact creation and skip that step. Don't. The accept is the one event in this whole process that happens outside the CRM and that no integration can see, and it's the event that starts the clock. Trigger on creation and every due date drifts by however many days the person took to accept, which on LinkedIn is anywhere from four minutes to three weeks.

The gesture doubles as your volume control, which is why the fifteen-a-day rule needs no configuration at all. Fifteen accepts today become fifteen messages three days from now. Mark thirty on an enthusiastic Monday and Thursday will come collect.

Step 3: the workflow that opens the cadence

In the automations area, create an event-based workflow on the Contact module. This is the whole thing.

Workflow 1 · Cadence opens
When

A contact is updated and the field Cadence stage becomes Accepted.

Only if
  • Support platform is not empty
  • Trigger is not empty
Then
  • Create task: T0 · Like or comment on a post, due in 1 day, owner: the contact owner
  • Create task: T1 · First message, due in 3 days, owner: the contact owner, with the message copy in the description
One trigger, two conditions, two actions. Every other workflow in this build is a copy of this shape.

The condition block is where the first rule stops being a promise. A contact with no trigger can be moved to "Accepted" all day long and no task will ever appear, so the person eventually goes back and fills the field in. The CRM says no without anyone having to.

Two settings inside the create-task action deserve more attention than they get.

Owner: the contact owner, never a named person. Hardcode your own name and the day someone else joins the team, their prospecting lands in your task list. A task with no owner at all is worse: it shows up for nobody and sits there forever.

Due date: relative, counted in days from now. Not a fixed date. This is what makes the whole thing work for a contact who accepts today and another who accepts in November.

And the description is where the message copy goes, with the contact's field placeholders filled in by Freshsales. That way the person executing never opens a document, never hunts for a template, never rewrites from memory at 9am:

T1 task description

Hi {{first name}}, thanks for accepting.

I noticed {{company}}'s help center runs on {{support platform}} and that there's no category for duplicate invoices. That's usually the subject that generates the most repeat tickets in your industry.

Curious: who touches the help center today, the IT team or support itself?

The bracketed bits are placeholders, and the sentence in the middle is the one you rewrite by hand every single time, because it's the trigger. A template that goes out untouched is the same message to forty people, which burns the profile and the brand with it. The template exists to save the greeting, not the observation.

Step 4: chaining T2, T3 and T4

Three more workflows, each an exact copy of the shape above with two things swapped: the stage it listens for, and the number of days.

Here's the trap. The cadence is described as day 3, day 8, day 15 and day 26, and those are calendar days counted from the accept. The workflow doesn't know about day zero. It runs when a stage changes and counts forward from that moment, so what you type into each due-date box is the gap, not the day.

What to type in the due-date box
Accepted → T0 +1 lands on day 1
Accepted → T1 +3 lands on day 3
T1 sent → T2 +5 lands on day 8
T2 sent → T3 +7 lands on day 15
T3 sent → T4 +11 lands on day 26
Type 5 where you meant day 8. Getting this backwards is the most common way a cadence like this comes out wrong.

Those landing days only hold if each task gets done on the day it was due. Someone who clears T1 two days late pushes everything downstream by two days, and that is the correct behaviour: the gap between touches is what matters, not the anniversary of the accept. A cadence that fires T2 while T1 is still sitting undone would be worse than one that runs slightly late.

Step 5: the outcome that moves the stage

So far nothing connects doing the work to the next task appearing. That connection is the outcome.

In the customization area for sales activities, add three outcomes to the task type used here: Sent, Replied and Do not pursue. Closing a task then means picking one, and the choice decides what happens next.

The loop that walks itself
01

You close the task

And pick an outcome: Sent, Replied, or Do not pursue.

02

A workflow reads it

Sent pushes the stage forward. Replied and Do not pursue push nothing.

03

The stage changes

From Accepted to T1 sent, for example, on the contact record.

04

The next task is born

Because a workflow was already listening for that new stage. And around it goes.

Four workflows and one field. Nothing here knows about the cadence as a whole, which is why it never gets stuck.

"Replied" is the one that matters most, and it does its job by doing nothing. The stage moves to "Replied", no workflow listens to that value, and the chain simply stops. Then go delete whatever future task is still open on that contact, because the cadence stopped but the task that was already created doesn't know that.

If your plan doesn't let workflows trigger on task completion, this still works with one extra click: whoever closes the task also moves the stage dropdown on the contact by hand. Everything downstream is identical, since the workflows are listening to the stage field either way, not to the task. Build it that way first if you're unsure. It's easier to automate the click later than to debug two layers at once.

One thing that costs more than it looks: closing a task is a change of state, not a checkmark for "I've seen this". If you opened it, copied the text and didn't send, leave it open. A cadence that thinks it sent a message it never sent is worse than no cadence, because you'll never find that contact again.

Step 6: the views you open every day

Three saved views turn all of this into a 30-minute routine.

Today's tasks. Filter: due date is today, owner is me. Sort by task type so T1s come before T4s. This is the morning, 15 minutes.

No trigger yet. Filter: stage is "Invite sent" and trigger is empty. These are the contacts that will never start a cadence until someone does the research. This is the afternoon, 10 minutes, and it's a to-do list rather than a hall of shame.

Accepted today. Filter: stage is "Accepted" and the stage changed today. This is the end of the day, 5 minutes, and its only job is to show you whether you passed fifteen.

Step 7: what to measure

Build the report on the four things a person actually controls: contacts with a trigger written into the CRM, tasks closed on time, cadences that reached T4, and conversations started. Meetings booked is a consequence of those four and belongs on a different report, one nobody is judged by weekly.

The T1 variant field pays off here too. Three months in, group replies by variant and you'll know whether observation beats diagnostic on your list. That's the kind of answer that only exists if someone filled in a dropdown ninety times.

What breaks after it's built

A task with no owner. It shows up for nobody. If you ever see a task in a list with an empty owner column, some workflow has a blank owner setting.

A workflow that listens to the field it changes. Freshsales guards against the obvious loops, but the real damage is subtler: a rule that fires on "any contact update" and then updates the contact will run on its own edits. Trigger on the specific field change, always.

Due dates landing on a Saturday. Nobody is going to do T3 on the weekend, so it gets done Monday and everything shifts. Harmless, but it's the reason the cadence takes 30 days as often as 26.

Orphan tasks after a reply. Someone answers T1 and you've still got T0 sitting open. Close it with "Do not pursue" so the list stays honest.

Renaming a dropdown value. Change "Accepted" to "Accepted invite" and every workflow pointing at the old string goes quiet, without an error, without a warning. Name them once, badly if necessary, and leave them alone.

Before you turn it on for the team

Create a fake contact with your own name. Fill in platform and trigger, move the stage to "Accepted", and watch both tasks appear with the right dates. Then close T1 with "Sent" and watch T2 show up five days out. Ten minutes, and it saves you the week where nobody understood why nothing appeared.

Then try the negative case, which matters more: create a second contact with the trigger field empty, move it to "Accepted", and confirm that nothing happens at all. If a task shows up anyway, your condition block is wrong and the whole rule the automation was supposed to protect is protecting nothing.

All of this is execution, and a well-configured CRM carries execution for you. The part you can't automate is choosing who to write to.

And I still get that wrong. Last week I sent an invite to a head of CX at a company I hadn't checked, figuring I'd work out the platform later. I didn't. The contact is still sitting there at "Invite sent", no trigger, no cadence, waiting for me to do the work that was supposed to come first.

If your sales team runs on Freshsales and you'd rather not build this from scratch, come talk it over with us.

Leandro is the founder of Red Lotus Tecnologia, specialized in implementing, supporting, and evolving Freshdesk and Freshsales for teams in Brazil.