Docs
Get started

Inject the lead source into any message

The Send Source command replaces itself with the contact's attribution: the Meta Ads campaign they came from, the organic landing page, the referral, whatever your CRM has on file. Use it for context-aware first messages and clean conversation logs.

Overview

Knowing where a lead came from changes how you open the conversation. A contact from a paid retargeting ad is colder than a referral from an existing customer. The !SOURCE! command pulls the contact's source field from your CRM at send time, so every workflow can tailor itself to attribution without you wiring extra logic.

Pair !SOURCE! with the Meta Ads integration to surface the exact ad set name in your team's internal feed the moment a new lead arrives.

Command syntax

!SOURCE!

The command takes no arguments. Drop it anywhere in the message body and Wazzap replaces it with the lead source string.

How it works

  1. Your CRM stores a source field on every contact (Meta Ads campaign, organic, referral, partner, etc.).
  2. You compose a message that contains !SOURCE!.
  3. Wazzap reads the source from the CRM at send time, replaces the command with the value, and dispatches the clean message.
  4. If the source field is empty, Wazzap drops the command or leaves it as an empty string, depending on your sub-account configuration.

Examples

Internal team alert with attribution

!INTERNAL! New lead from !SOURCE!. Assigned to !AGENT!.

Output (when the lead came from a Meta Ads campaign called "Q2 Cold MX"): "New lead from Q2 Cold MX. Assigned to Carlos."

Personalized intro by source

Hi {{contact.first_name}}, I see you came from !SOURCE!. Mind if I ask a couple of quick questions to get you set up?

Output: "Hi Maria, I see you came from organic search. Mind if I ask a couple of quick questions to get you set up?"

Reporting stamp on closed deals

!INTERNAL! Deal closed. Lead source: !SOURCE!. Closer: !AGENT!.

A two-tag attribution stamp that lands inside your team's internal feed every time a deal closes. Clean for spot-checks, perfect for weekly review meetings.

Use cases

  • Source-aware first replies. Greet warm referrals one way and cold ad traffic another.
  • Closed-loop reporting. Stamp every internal note with the lead source so dashboards and exports have clean attribution baked into the conversation history.
  • Routing logic. Combine with HighLevel workflow branches so leads from specific Meta Ads campaigns route to different reps, with the source name showing up in the handoff note.
  • Quality checks. Spot leads where the source field is empty (and fix the tracking that's failing upstream).

Important notes

  • The command pulls whatever lives in the contact's source field. Garbage in, garbage out: keep your tracking clean upstream (UTMs, Meta Ads campaign names, manual assignments).
  • The command is case-sensitive. Use !SOURCE!.
  • Works alongside any other command. Mix freely with Delay, Spintax, Internal, etc.
  • If a lead has no source on file, expect an empty or literal command. Test before you ship it to customer-facing copy.

Troubleshooting

The customer received the literal !SOURCE! string

Either the message was sent from the phone (the WhatsApp app doesn't parse Wazzap commands, send from the CRM's Conversations tab or a workflow step), or the syntax was typed wrong (lowercase, missing exclamation marks). Confirm !SOURCE! in uppercase and resend.

The output is empty

The contact has no value in the source field. Check that your tracking is firing on lead capture (UTM params, Meta Ads ad set name, partner tag, etc.). If you rely on this command in customer-facing messages, set a fallback default in your sub-account so empty sources don't leak as awkward blank space.

The wrong source appeared

The CRM's source field was overwritten somewhere upstream. Open the contact's audit log and check which workflow or step changed the value. Lock down the field if needed so only your ingestion logic can write to it.

!

For full attribution chains, combine !SOURCE! with Send agent and Internal notifications. One line of message content, three layers of context for your team.

Was this page helpful?