Compliance is enforced in code, not requested in a prompt.
Every draft Substrait writes clears a registry of hard rules before it can send. A rule can rewrite that draft, hold it, or block it. The model does not get a vote.
- Consent and timing are settled before a word is written.
- A failing draft gets one rewrite. Fail twice and it is blocked.
- More than 13,000 automated tests run against our engine.
Twenty-five rules, six jobs.
Each rule is its own piece of code with its own tests. None of them is a line in a prompt asking the model to behave. Sixteen are described here. Nine are not, and the last row says why. For what happens to the database itself, see your data.
Nothing goes to someone who said no.
An opt-out is permanent. It is honored the moment it arrives and it never expires. This is the first thing checked, ahead of every other rule.
A fresh no is not answered with a pitch. When someone turns an offer down, the next message does not put it back in front of them.
The moment one of your people is involved, Substrait stands down.
An agent in the thread stops it. Once a teammate is replying to that lead, the AI stops writing to them.
An open task on the lead stops it. If your CRM says someone owes that lead a step, Substrait leaves it to them.
An escalation a human still owes stops it. A lead handed to a person is not worked around while that person still has it.
Nothing fires on a schedule, and nothing piles up on one person.
Your texting hours, in their time. Sends stay inside the window your office configured, measured in the lead’s own local time.
The holidays your office observes are skipped. You set which ones. Substrait does not text through them.
Email has its own window. A proactive email is held to a time of day appropriate for email, not for a text.
These two block outright. They do not soften and send.
Fair Housing screening. A draft that characterizes a neighborhood or the people in it is blocked, not rewritten and shipped.
Language your office has prohibited never goes out. You keep your own list. Whatever the model wrote, those phrases do not send.
The sender is your office, on every message, without exception.
Your number, your agent’s name. Every message goes out from your office’s own number, in your agent’s name.
It never signs as the lead, and it never denies what it is. Substrait does not volunteer that it is an assistant. Asked directly, it does not deny it.
One brand cannot bleed into another. An office running more than one brand cannot have them cross in a message.
A draft that reads wrong does not ship, even when nothing else is broken.
It answers what was actually asked. A question in the lead’s last message gets answered before anything else happens.
MLS shorthand is translated. Trade abbreviations are turned into plain English before a consumer sees them.
It writes in their language. When your CRM records a preferred language for a lead, a draft that is not in it is sent back to be rewritten.
Nine of the twenty-five are not described on this page.
They are the rules that took longest to get right, and most of them were learned the hard way, from watching real conversations go wrong. They are the difference between a message that reads like your agent and one that reads like software.
Publishing them would hand a competitor the list without the years it took to find it. So the sixteen above are the ones any serious vendor should be able to show you, and the other nine are ours.
You still see every one of them run. Each decision is logged with the rules that fired and the one that failed, on your own records, whether or not we name it here.
Opt-outs, STOP, and who the sender is.
STOP is permanent
Reply STOP to a text and messaging to that number stops. The opt-out is recorded at once and it does not expire. A carrier opt-out, a person marked do-not-contact, and an office pause are each recorded separately, so you can trace how a lead came to be excluded.
You are the sender
Messages go out from your own number and email address, not from ours. Substrait works the people already in your CRM. It adds no one to it, and we do not buy contact data.
Cold pipeline waits
On Sierra Interactive, Substrait reads logged call attempts and holds off on a cold lead until one of your agents dials first. The AI is never the first touch on a lead your team meant to call.
What happens to your database.
Your CRM stays the system of record. We do not stand up a copy of it beside yours.
Nothing is migrated
Substrait reads your CRM and writes back to it. There is no second database for your team to check, and nothing to export if you leave. Your records stay yours under your own agreement with that vendor.
Your leads are not training data
Drafts are composed through Anthropic, and data sent for composition is not used to train their models. We do not sell personal information. One customer’s contact data is never used to benefit another.
Every decision is logged
What was decided, which rules ran, which one failed, and what was sent. A blocked message leaves a record of why it was blocked.
How it is stored
Encrypted in transit and at rest. Credentials for a connected CRM are encrypted with a key that is itself split across separate stores. Access is scoped per brokerage, so one customer’s data is not reachable from another customer’s session.
On the phone
Your session lives in the iOS Keychain on your own device and can be locked behind Face ID or Touch ID. That check happens on your phone through Apple. We receive only whether the unlock succeeded.
Collection, retention and deletion
Covered in full in the privacy policy, including what we keep, for how long, and how to make a request. Opt-out records are the one thing kept indefinitely, because that is what guarantees we never contact someone again.