Auto-Unlink Tags in SendPulse: CRM Flows That Clean Themselves Up
If you've been building WhatsApp bots with SendPulse for any length of time, you know that tags are the backbone of your segmentation strategy. The classic problem: tags pile up. A contact who was once labeled cold_lead keeps carrying that tag even after they purchased, upgraded, or churned. That pollutes your segments, triggers the wrong flows, and in production, it costs you real money.

SendPulse just addressed that with a focused but powerful update: you now have both an action ("unlink tag from CRM contact") and a trigger ("tag unlinked") available inside the Automation 360 editor. This means you can remove tags at a specific point in a flow and chain another automated flow when that removal happens. This tutorial walks you through implementing it in a real WhatsApp bot.
Prerequisites
- A SendPulse account with a plan that includes Automation 360 and CRM (the free plan has limitations; verify you have access to the CRM module).
- An active WhatsApp bot connected to your SendPulse account (verified number via WhatsApp Business API).
- Tags already created in your CRM. If you don't have any yet, create them under CRM > Contacts > Tags before continuing.
- Basic familiarity with the Automation 360 editor (dragging elements, connecting nodes).
The Problem This Solves
Picture this typical WhatsApp sales funnel scenario:
- Contact enters the bot → receives tag
active_prospect - Goes through nurturing → receives tag
demo_scheduled - Makes the purchase → should lose
active_prospectanddemo_scheduled, and gaincustomer
Without the new functionality, step 3 required manual intervention or an external webhook to clean up the old tags. Now you handle everything inside the same Automation 360 flow.
Step 1: Create or Open Your Flow in Automation 360
Go to Automation 360 from the main menu. Create a new flow or open an existing one. The entry point can be any trigger: message received, form submission, payment confirmed — whatever fits your use case.
For this tutorial we'll use a post-purchase flow: the initial trigger is "Payment Completed" (or you can use an inbound webhook if your payment gateway isn't natively integrated).
Step 2: Add the "Unlink Tag" Action
Inside the editor, after the node that confirms the purchase:
- Click the "+" button to add an element.
- Select "Action" in the side panel.
- In the action type dropdown, look for "Unlink tag from CRM contact".
- In the configuration field, select the tag you want to remove. You can add multiple actions in sequence to clean up several tags at once.
Example action configuration:
Type: Unlink tag
Selected tag: active_prospect
Contact: [current flow contact]
Repeat the step for demo_scheduled.
Then add a "Link tag" action to assign customer. Order matters: remove first, then assign.
Step 3: Configure the "Tag Unlinked" Trigger
Here's the new and most interesting part. You can now create a secondary flow that fires exactly when a tag is removed from a contact, whether by automation or manually from the CRM.
- Create a new flow in Automation 360.
- As the initial trigger, select "Tag unlinked".
- Specify which tag fires this flow: in this case,
active_prospect. - Connect whatever nodes you want to execute: a welcome-as-customer message, an internal notification to your sales team via Slack (using a webhook), an onboarding email, etc.
Outbound webhook snippet to notify Slack when the tag is unlinked:
POST https://hooks.slack.com/services/YOUR_WEBHOOK_ID
Content-Type: application/json
{
"text": "Contact {{contact.name}} ({{contact.phone}}) was removed from active_prospect and converted to customer.",
"channel": "#sales"
}
In SendPulse, configure this inside an "HTTP Request" node in your secondary flow, using the contact variables available in the editor.
Step 4: Use Case — Automatic Cleanup for Inactivity
Another powerful scenario: remove the hot_lead tag if the contact doesn't respond within 72 hours.
- Main flow assigns tag
hot_leadwhen the contact opens the bot. - Add a "Wait" node for 72 hours.
- Add a condition: "Did the contact respond in the last 72 hours?"
- If NO → action "Unlink tag: hot_lead" → action "Link tag: cold_lead"
- If YES → continue the normal flow
The secondary flow listens for the "Tag unlinked: hot_lead" trigger and can send an automatic reactivation message or simply log the event to your external CRM.
Step 5: Validation and Testing
Before going live in production:
- Use a test number registered in your SendPulse account.
- Enable "Test" mode on the flow and simulate the full journey.
- Verify under CRM > Contacts that the tag was correctly removed after the flow executed.
- Check the logs under Automation 360 > Execution History to confirm the secondary trigger fired.
Production Warnings
Don't chain triggers in a loop. If flow A unlinks a tag and flow B, triggered by that unlinking, re-links and unlinks the same tag again, you're in an infinite cycle. SendPulse has some safeguards but they're not bulletproof. Design your flows carefully.
Tags are case-sensitive in the API. Active_Prospect and active_prospect are different tags. Standardize your tag names from the start, preferably lowercase with underscores.
Manual unlinking also fires the trigger. If someone on your team removes the tag by hand from the CRM, the flow will fire just the same. Make sure that's the intended behavior, or add a filter condition at the start of the secondary flow.
Watch your message limits. If you have thousands of contacts with the tag you're bulk-removing, the trigger can generate a flood of simultaneous flows. Use the batch-send functionality or schedule the operation during low-traffic hours.
Full Flow Summary
[Trigger: Payment Completed]
↓
[Action: Unlink tag → active_prospect]
↓
[Action: Unlink tag → demo_scheduled]
↓
[Action: Link tag → customer]
↓
[Message: "Welcome to the club, {name}"]
---
[Trigger: Tag unlinked → active_prospect]
↓
[Webhook → Slack: team notification]
↓
[Email: onboarding sequence]
With this in place you have a CRM that stays clean on its own, flows that react to state changes in real time, and zero ghost tags piling up on your contacts. Implement this today and the next time someone asks why your segments are so clean, you'll know exactly what to say.