Key takeaways
- Tags are one of the most effective ways to trigger automations in GoHighLevel — applying a tag can launch campaigns, send emails, send SMS, and more.
- The workflow triggers on Dynamic Video Campaign → Video Created, then searches for the contact by email or phone number.
- If the contact exists, it’s updated and tagged; a Tool Break then stops the flow to prevent a duplicate.
- If the contact doesn’t exist, the Error Handler passes control to a Create Contact step that creates and tags the new contact.
- When a video is generated in Sendspark, we want to either create a new contact in GoHighLevel or update an existing contact.
- In both cases, we’ll apply a tag (for example, the name of the campaign) so the contact is added to the right automation sequence.
- If the contact exists → update the contact and apply the tag.
- If the contact doesn’t exist → create the contact and apply the tag.
In the following example, you’ll notice the steps required to build this:

Workflow Example: Updating or Creating a Contact with Tags
Here’s how to build a workflow that ensures every contact gets the correct tag—whether the contact already exists or not.Step 1: Trigger
Start with the trigger: Dynamic Video Campaign → Video Created.Step 2: Search for Contact
Add the action Hubato: Search Contact by Email or Phone Number.- This checks if the contact already exists in GoHighLevel.
Step 3: Update Contact
Add the action Hubato: Update Contact.- This step requires a Contact ID, which is provided by the search in Step 2.
- The update is used to apply a tag to the existing contact.


Step 4: Tool Break
Insert a Tool Break.- Purpose: If a contact was found and updated in Step 3, the workflow stops here.
- This prevents creating a duplicate contact.
Step 5: Create Contact (Error Handler)
After the Tool Break, add the action Create Contact.- This step only runs if the contact was not found in Step 2 (Search for a Contact)
- The Error Handler ensures that when the search fails (no contact exists), the workflow continues here to create a new contact and apply the tag.

How It Works
- If the contact exists → Search succeeds → Update the contact → Apply tag → Stop.
- If the contact doesn’t exist → Search fails → Error Handler passes control → Create the contact → Apply tag.
Frequently asked questions
How do I apply a tag when a Sendspark video is created?
How do I apply a tag when a Sendspark video is created?
Build an Agentic Workflow that triggers on Dynamic Video Campaign → Video Created, searches for the contact by email or phone, and then updates and tags the contact (if they exist) or creates and tags them (if they don’t).
How do I avoid creating duplicate contacts in GHL?
How do I avoid creating duplicate contacts in GHL?
Add a Tool Break after the Update Contact step. If the contact was found and updated, the Tool Break stops the workflow so it doesn’t continue to the Create Contact step and make a duplicate.
What does the Error Handler do in this workflow?
What does the Error Handler do in this workflow?
The Error Handler handles the case where the search finds no existing contact. When the search fails, it passes control to the Create Contact step, which creates the new contact and applies the tag.