Build vs buy and DIY

What home built outbound breaks first

By Viktorio Shopov, co-founder of Sellinger. Reviewed by Asen Levov. Published . Last updated . 7 minute read.

Home built outbound tends to break in five places: sending limits and deliverability, state and duplicates, reply handling, opt outs, and visibility with approvals. The first message usually works. The failures show up in week two, when volume rises and a reply, a bounce or a stop request arrives.

Why does DIY outbound break after it works?

A first version is easy to build because it only has to do the happy path: take a list, write a message, send it. Real outbound is mostly unhappy paths. People reply at 3 a.m. with a question. They reply "not now". They forward your message to a colleague. A mailbox bounces. Someone writes "unsubscribe" in another language. An out of office arrives and the workflow treats it as interest.

None of these cases is hard on its own. The trouble is that they multiply, they arrive in any order, and each one needs a decision. Below are the five places we see home built setups fail first, and how Sellinger handles each. We describe what the product does, not what it guarantees.

1. Sending limits and deliverability

What breaks. A workflow sends as fast as it can. A burst from a new mailbox looks like spam to mail providers. On LinkedIn, a burst of invitations hits the limits that apply to every member. LinkedIn also says it does not permit third party software that automates activity on its site, and that members who use such tools risk their accounts being restricted (LinkedIn Help). On email, Google's sender guidelines for bulk senders ask for SPF, DKIM and DMARC, one click unsubscribe, and a spam rate kept below 0.30% (Google). Those thresholds are written for senders above 5,000 messages a day to Gmail accounts, but the direction applies at any size.

How Sellinger handles it. Every connected account has daily limits that the agent cannot exceed, set per account. LinkedIn defaults are 20 invitations a day and 150 a week. Email defaults to 50 sends a day per mailbox, with an optional warm up that starts at 5 a day and doubles every 3 days up to the limit. Sending follows a schedule you set, and when none is set a quiet window of 01:00 to 08:00 local time applies. Cold email can carry an unsubscribe line and the standard one click unsubscribe headers, as a per mailbox setting that is off by default. We cannot promise inbox placement or that a platform will not restrict an account.

2. State and duplicates

What breaks. The workflow does not remember. It sends a follow up to someone who already replied. It writes to a person twice because they appear on two lists. It contacts someone on LinkedIn and by email on the same morning, with different offers. The cause is simple: state lives in a spreadsheet column, and several workflows write to it at once.

How Sellinger handles it. Each lead is one record with its conversation history across channels, so the next action is chosen from what already happened. Follow up counts and gaps are set per campaign. The defaults are explicit, for example LinkedIn 4 follow ups and then email, email 5 and then WhatsApp, with gaps of 5 days on LinkedIn and 1 to 3 days on email and WhatsApp. When a lead replies, the follow ups stop.

3. Reply handling

What breaks. Replies are where DIY gets expensive. Three problems show up in this order.

  1. Machine mail. Out of office messages, helpdesk acknowledgements, no reply senders and satisfaction surveys look like replies. A naive workflow answers them, or counts them as interest.
  2. Speed. A reply that waits a day for a person has gone cold. A workflow that polls every hour is slower than it looks.
  3. Questions the agent cannot answer. A model asked for a price it was never given will invent a number. That is worse than silence.

How Sellinger handles it. Automatic replies from helpdesks, no reply senders, satisfaction surveys and empty messages are marked as machine mail. They never count as a human reply, the agent does not answer them, and the lead is sent to a person with a named reason. The agent stops on its own when it cannot answer, for example a price it has no answer for, and a person can take over any conversation. The facts the agent may use are the ones you give it.

4. Opt outs

What breaks. This is the failure with consequences beyond the numbers. A person writes "stop" or "unsubscribe" and the workflow keeps going, because the opt out was recorded in one place and another workflow does not look there. Under the GDPR a person can object at any time to the use of their data for direct marketing, and the data then "shall no longer be processed for such purposes" (GDPR Article 21). The FTC's CAN-SPAM guide says to honour an opt out within 10 business days, and states penalties of up to $53,088 for each violating email (FTC). A legal minimum is not a design. The design is to stop at once, everywhere.

How Sellinger handles it. When a contact replies with an opt out such as STOP or unsubscribe, in English, Bulgarian or German among other forms, the contact goes on the team's suppression list, the agent stops and the lead is closed out. A weak or unclear phrase never writes the permanent record: the agent stops and a person decides. Before every send on email, LinkedIn and WhatsApp, the platform checks that list and refuses the send when the contact is on it or when the check cannot be completed. An erasure function can also anonymize the matching leads and add the identifiers to the suppression list so the person cannot be imported and contacted again. The check that fails closed is the part that is hard to build well.

5. Observability and approvals

What breaks. Nobody can say what went out. Logs live in the workflow tool and expire. When something odd happens, there is no single place that shows the message, the person and the time. A model can also draft something wrong, and with no approval step it is sent and cannot be recalled.

How Sellinger handles it. A campaign can run in approval mode, where every message waits for a person to approve it, or send automatically. Every conversation is logged against the contact, so a person who takes over can read what was said. The outreach rules state how this works.

How do the five compare in one table?

Table
Limits and deliverabilityBursts, flagged mailboxes, restricted accountsPer account caps, warm up, quiet hours, stop on errorsPer account limits the agent cannot exceed, optional warm up, schedule
State and duplicatesDouble contact, follow up after a replyOne record per person, one historyLead record with cross channel history
Reply handlingAuto replies treated as interest, slow answersClassifier, hand off rules, facts storeMachine mail marked, hand off with a named reason
Opt outsStop request ignored by another workflowOne suppression list, checked before every sendSuppression list checked before every send, fails closed
Observability and approvalsNo record of what was sentApproval step, durable logApproval mode, full conversation log, take over

What should you do with this?

Run this check on your own setup. It takes an hour.

  • [ ] Pick one contact and list every message sent to them, on every channel, in order. Can you?
  • [ ] Add a test contact, reply "stop" from them and watch every workflow. Does each one stop?
  • [ ] Send an out of office reply to the setup. Does it get a human answer?
  • [ ] Look up the daily sending count for each account for the last week. Is it within a limit you set on purpose?
  • [ ] Ask who approves what goes out, and what happens when the model is unsure.

If you can pass all five without effort, your build is in better shape than most. If not, you now know where to spend the next week, or what to buy. The cost side of that decision is in Build vs buy an AI SDR. The LinkedIn specific part is in Can you automate LinkedIn yourself?. For the record side, see Build your own CRM.

Common questions

Why does DIY outbound work in the demo and fail later?
A demo has one contact, one reply and no stop request. Real use has hundreds of contacts, replies that arrive out of order, auto replies, bounces and people asking to be removed. The edge cases are the product.
What is the most dangerous failure?
Contacting someone who asked you to stop. It is a legal and reputation problem, not a bug. It happens when the opt out is handled in one workflow and a different one keeps sending.
How can I tell my setup is failing quietly?
Look for the same person contacted twice, replies with no answer after a day, a mailbox with falling delivery, and no way to say what was sent last Tuesday. If you cannot answer those questions, you cannot see failures.
Does Sellinger handle all five?
It has built in handling for each: per account limits, one conversation history, reply handling that separates machine mail, an opt out list checked before every send, and approval mode. None of this removes the need to choose a good audience and offer.
Is it worth building a lighter version?
For a few dozen contacts a month, often yes. Past that, the cost shifts from writing the workflow to maintaining the controls around it.

How Sellinger helps

Read how it works on Read the outreach rules, or see a real campaign in Read how we use it ourselves.

Sources

See it on your own accounts

Start with a 30 day free trial, no card. Nothing is sent without your approval unless you turn that on.

Unit4ShellyRocket.ChatGetAcceptPeopleForce

Teams that have used Sellinger

Start free trial