Hello, marketers! Welcome back to Marketer’s Space. In this week’s post, we’ll look at how to simplify subscription management using Workflows for contacts synced from Zoho CRM in Zoho Campaigns. There are multiple ways to assign topics to your contacts:
- Default assignment at sync: When syncing contacts from CRM, you can either keep them unsubscribed (no topics) or subscribe them to all available topics. This gives you a clean starting point, especially if you plan to collect preferences later.
- Letting contacts choose: You can send an email campaign with a preference center link, allowing contacts to choose the topics they’re interested in. Their selections are automatically reflected in their topic subscriptions.
- Manual updates via CRM: If your sales team collects customer interests during conversations, they can record them in custom CRM fields such as a field called “Interests.” These fields can hold one or more interest values like sale, product launch, or newsletters. Once these contacts are synced into Zoho Campaigns, you can build a Workflow that reads this data and automatically subscribes each contact to the relevant topics.
In this post, we’ll look at how to use custom CRM fields and Workflows in Zoho Campaigns to automate topic assignment based on customer interests.
Why automate subscription management?
When both your sales team and your customers update subscription preferences, manual handling can get messy. Automating this process ensures that:
- Your contact lists stay up-to-date
- You remain compliant with email regulations
- You send only relevant emails to the right audience
Sync CRM contacts with a targeted list
To begin, sync your Zoho CRM contacts to a specific mailing list in Zoho Campaigns. This list will serve as the foundation for your targeting and automation.
Here’s how you can set it up:
- Go to Settings > Apps > Zoho CRM and connect your account.
- Then navigate to Contacts > Sync Services > New Sync.
Choose the CRM module you’d like to sync (e.g., Leads, Contacts or custom modules ) and map it to a mailing list in Zoho Campaigns.
Once the sync is set up, you can trigger Workflows using:
- List Entry – Triggers when a contact is added to the synced list.
- Field Update – Triggers based on changes to mapped CRM field values.
This setup ensures your Workflows respond dynamically to CRM data and list activity.
Capture interests directly in Zoho CRM
Your sales team can log customer interests in a custom CRM field (e.g., Interests). This might include values like:
- Sale
- New Product Launch
- Exclusive Content
These values become the key to targeting contacts with relevant content.
Create topics in Zoho Campaigns
To align campaigns with user interests, create relevant topics inside Zoho Campaigns.
You’ll find this under Contacts > Manage Topics.
Consider topics like:
- Newsletters
- Member-only updates
- Sale announcements
- Product launches
Organizing your campaigns under topics helps contacts manage preferences and improves engagement.
Build your automated subscription Workflow
Trigger the Workflow
Use the “List Entry” trigger with your CRM-synced list.
Alternately, use the “Field Update” trigger to filter based on interest fields or subscription status.
Split based on Interests
Add the Process Condition component and select the Multi-way option.
- Branch 1: Interest is “Sale”
- Branch 2: Interest is “New Product Launch”
- Branch 3: Interest is empty → default to unsubscribe
Assign subscriptions automatically
For each branch, add the “Subscription Management” action component:
- Branch 1 → Subscribe to Sale Announcements
- Branch 2 → Subscribe to Product Launches
- Branch 3 → Unsubscribe from all topics to avoid sending irrelevant emails
This ensures each contact only receives what they opted in for or nothing irrelevant.
Assigning Multiple Topics Using Comma-Separated Values
If your CRM contacts are interested in more than one topic, you can record multiple interests in a single CRM field using comma-separated values. For example: sale, launch, newsletters
When you use the “contains” modifier, you can match this field against several keywords at once and assign multiple topics in a single branch.
Trigger the workflow
Use the Field Update trigger and select the CRM field where interests are stored (e.g., Interests). This workflow will activate whenever the field is updated in CRM.
Add the Process Condition
- Insert a Multi-way process component and set the condition to: Interests contains sale launch newsletters
- Make sure the keywords are separated by spaces so that each word can be evaluated individually. If the contact’s field contains any of the specified values (sale, launch, newsletters), the workflow will take this path.
Assign multiple topic subscriptions
To that branch, add the Subscription Management action component and add all relevant topics. This ensures:
- A single contact can be subscribed to multiple relevant topics
- No interest is missed out during automation
Advanced Use Case:
Use an additional CRM field like Customer Type (e.g., Member, Non-member). Create a separate Workflow that:
- Filters contacts with “Member” status
- Subscribes them to exclusive member-only topics
This lets you send gated content without mixing up audiences.
Use Segments as an alternative trigger
Instead of using a list-based trigger, you can create a Segment using criteria like CRM fields or engagement behavior. Then:
- Trigger a Workflow when a contact is added to a segment using the “Enter a Segment” trigger component
- Automate topic subscriptions or unsubscribes from there
This is ideal when you prefer dynamic criteria over static list membership.
With Workflows in Zoho Campaigns, subscription management becomes hands-free, precise, and personalized. Whether you’re handling thousands of CRM contacts or running niche campaigns for select groups, this setup keeps your audience segmentation sharp and relevant.
See you soon with more ways to supercharge the Zoho CRM + Campaigns integration. Until then, happy marketing!
Regards,
Pearlin Nitika
User Education | Zoho Campaigns
Recent Topics
【参加無料】10/17(金) 東京 ユーザ交流会 Vol.3 参加登録 受付開始!
ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 10/17(金)に、東京・新橋で「東京 ユーザー交流会 Vol.3」を開催します! 今回のユーザー事例セッションのテーマは、「Zoho Flowを活用した他社の決済サービスとの連携事例」です。 さらに、Zoho Flowに限らず、Analytics や Campaigns などの多彩なZohoサービスの活用方法について、豊富なご経験をもとにご紹介いただきます。 また、Zoho社員セッションでは、Zoho CRMを活用して日々の営業業務を効率化する具体的な事例をお話しします。業界を問わず、幅広い方にご参考いただける内容となっています!
Zoho Meeting Plug compatibility with newer versions of Outlook
Documentation states that the zoho meeting plug in for outlook is only compatible with versions up to Outlook 2019 What is available to users of more up to date versions of outlook/office 365?
Introducing Zoho's own SMS gateway
We're thrilled to announce the launch of our own SMS gateway feature within Zoho Marketing Automation! This new feature enables seamless SMS campaign management alongside your email marketing initiatives, providing a more integrated and efficient way
Embedding in Desk articles
We would like to embed documents in our Desk articles. When we use an iframe for the embed, we get scrollbars and a frame border. Neither of those is acceptable. I've spoken with the Desk Support team about what we want and they tell me that it cannot
Zoho CRM button to download images from image upload field
Hello, I am trying to create a button in Zoho CRM that I can place in my record details view for each record and use it to download all images in the image upload fields. I tried deluge, client scripts and even with a widget, but feel lost, could not
Mass Update Contacts In Zoho Campaigns
Is there a way to mass update contacts in zoho campaigns? I want to be able to change the content of a field for a few hundred contacts, and can't go through all of them individually.
report showing assignment type
Hi, We've created a number of workflows to allow us to auto assign tickets to agents based on keywords and other criteria. I'm struggling to create a report that would show me what is the percentage of tickets that are assigned automatically via workflows
Option to Disable Knowledge Base Section in Feedback Widget Popup Hello Zoho Desk Team
Hello Zoho Desk Team, How are you? We are actively using Zoho Desk and would like to make more use of the Feedback Widget. One of the ways we implement it is through the popup option. At the moment, the popup always displays the Knowledge Base section,
Placeholders in Ticket Templates
We should be able to use placeholders in ticket templates. When we create a new ticket, our description field is shown to the client in the email they receive. It would be very handy to be able to personalize that description field in our ticket templates to pull in the name of the client that the ticket is for. Using them in the subject field as well, so we can auto populate Account Names, etc.
when the record is created the tag want to Show as Opportunity how i achive this using Deluge Script
In the quotation i have the work flow schedule for create opportunity record in the module , on that time the quotation tag select as opportunity created. How i achive this using Deluge Script . this like i want to Do tag1 = Map(); tag1.put("name","Nurturing
Delete a channel
I need delete a channel in tickets.
Subtasks don't update parent task's times
Hi there: I've recently upgraded to premium and check that subtasks completion % don't update the proportional completion of the parent tasks related to it. We've been challenging with the problem of having to update twice or sometimes 3 times the completion of the related tasks. I've seen posts similar to this, of 3 years old. Is there any roadmap for making this happen in a future release? Thanx César Ratto Lima, Perú.
IMAP Server not responding.
Trying to connect a phone via IMAP and getting "imap.zoho.com not responding." Is the server down, for maintenance or otherwise? I've tried this on two different devices and got the same error on both.
Tip #44 – Get Deeper Insights with Zoho Assist’s Custom Reports – ‘Insider Insights’
In today’s fast-paced IT environment, having a clear view of your remote support activities is more important than ever. Zoho Assist’s Custom Reports feature gives IT teams the ability to generate tailored reports that provide actionable insights and
Issue with SalesIQ Visitor Identification on WordPress
Hi Zoho Support Team, I need some help with an issue on my WordPress website. My goal is to automatically identify logged-in WordPress users in Zoho SalesIQ, so I can see their name and email in the visitor list. Currently, my logged-in users are still
Message "...does not support more than 100 distinct values..." WHY????
I get this message on one of my reports: Sorry, Zoho Reports currently does not support more than 100 distinct values in columns. 'Account Name * Sum(Amount),Count(Amount Tier)' contains more than 100 distinct values. Possibly, you can apply filter to reduce the number of distinct values in 'Account Name' or drop the 'Account Name' field in Rows. I want to list all ACCOUNT NAMES (about 500) with SALES BY ACCOUNT. What is blocking this?
Let's Talk Recruit: Super-charge hiring with Zoho Recruit add-ons
Welcome back to our Let’s Talk Recruit series! This time, we’re diving into something that might seem like a small upgrade but has a huge impact on recruiter productivity: Zoho Recruit add-ons. Think about how much of your day is spent in your inbox or
Vendor Signatures Needed for Purchase Orders
Hello everyone, We have a unique requirement that necessitates that Vendors & Suppliers formally acknowledge our Purchase Orders upon receipt. I was hoping that there would be an option to do so in Zoho Books, but that does not appear to be the case.
Store "Sign in with Google/Microsoft/GitHub etc." details
Quite often now, users are using a sign-in provider like Google or Microsoft to sign into various apps and services. It would be great if Vault could remember which providers you use for each website and sign you in with that provider instead of a username
Tip of the Week #72– Assign thread ownership to avoid confusion.
When teams handle a large volume of emails, managing threads becomes important to stay organized. Without a clear system, duplicate replies, missed follow-ups, or confusion over responsibilities can happen. Thread assignment solves this by designating
Unarchive tickets
How can I manually unarchive tickets?
Optimize your Knowledge Base for enhanced accessibility by adding alt tags for images
Let's learn why alt tags are crucial for your articles. You can add alternative tags (alt tags) and alternative text (alt text) to the images you share on your community forums or when embedding them in articles. Alt tags refer to the HTML attribute,
FSM trying again
have not linked FSM yet to the rest of out Zoho suit. It certainly looks like the apointment and service part is more manageable for our staff. The question is that our engineers multi task examples 1. deliver products to customers not fitted 2. Service
Feature Request: Conditional Field Mandatoriness Based on Display Status
Hello Zoho Creator Team, I would like to suggest an enhancement to improve the flexibility of form validations. Currently, when we need a field to be mandatory only if it's displayed on the form, the only option is to: Set the field as not mandatory in
Data Migration Strategies for Moving to a Cloud Solution
Hi everyone, I’ve been working on moving some of our critical systems, including CRM and project data, to a Zoho cloud solution, and one of the biggest challenges I’ve encountered is data migration. Transferring large volumes of data while keeping it
Commerce Order as Invoice instead of Sales Order?
I need a purchase made on my Commerce Site to result in an Invoice for services instead of a Sales Order that will be pushed to Books. My customers don't pay until I after I add some details to their transaction. Can I change the settings to make this
How to set different item selling prices for Zoho Commerce and Zoho Books
Item selling prices for Zoho Commerce and Zoho Books are in sync. If we update the Item selling price in Books, the same will happen in commerce and vice versa. I need a separate commerce selling price for online users and a separate books selling price
How to report 'Response violation' OR 'Resolution violation'
Hi, I want to report on SLA Violation Type. I grouped my tickets on this column. It seems I only get 'Response and Resolution Violation' or 'Not Violated'. The former seems to be given to a ticket if only the Response Time was violated. I would expect
Enable Keyword-Based Bot Activation in SalesIQ Without Scripts
Hello team, We’d like to highlight an important limitation in Zoho SalesIQ Zobot. Current situation: In the no-code builder, bots can only be activated based on visitor attributes (country, page, campaign, CRM, etc.). If we want a bot to activate when
Date triggering Workflow rule
I have a function triggered by a workflow rule. The function takes a date and creates a task for that date and fills in a field with the name of the day for that date. It also updates the status field of the record. The workflow rule is set to run whenever
Restricting contact creation
Hi all! I am looking to use Zoho Desk in a part of the business that takes end user enquiries. These are generally single interactions, and not linked to an account name. As Desk is Account centric, has anyone designed a way to manage these incoming emails
Import Holiday Calendars
HI Zoho Is there anyway of importing an online calendar like https://www.calendarlabs.com into the business hours calendars, to speed up setup of holiday calendars. Also could we also request a feature where you can specify a Holiday as hours, i.e it could be that the company is on a 1/2 day due to a holiday or when it is Eid in the UAE and they are only allowed to work restricted hours so we need the calendar to be flexible to allow for this. Regards Jamie
Filtering Tickets based on Email headers
We're starting to get a lot more junk coming into our Zoho Desk, which is then triggering unnecessary email alerts to agents. Once thing we could do to cut this junk in half, is to filter tickets based on email headers. Any email containing the `List-Unsubscribe`
Error 550 5.4.1
I’ve tried sending an email to someone but keep receiving this back. Any help would be greatly appreciated
Billing Management: #2 Fair way of Billing- Prorated Billing
Hello, From speaking about the traditional ways of billing in the previous post, we are moving into the deep sea of billing. We are now in a zone to break out the most complex yet, I would call it the fairest way of billing, the Prorated Billing. Prorated
Adding image in HTML report page
Hi, I want to know two things: 1. Can anyone advise how to add an image in HTML report. The tagged used is <img> but what path do I mention for the image to be added in the HTML report. 2. Also, I want to know if I am creating an application for the market
How to change view of HTML report based on device but always print in A4
Hello everyone, I am aware that HTML report view can be configured to adjust according to the screen size like Laptop, Tablet and mobile using media queries. But my concern is no matter on which device the reports is opened when printed should always
Age Calculation
I've attempted to calculate the age of someone based on their birthday input by using the formula field. It works but I don't want all those decimals on there. I then tried to use "set variable" after birthday input but I get a field type mismatch, long vs. floating. Any ideas would be wonderful.
Search on Custom Field
We're working on an integration with the Zoho FSM API and are trying to retrieve companies based on a custom field we added to the Companies module. However, we can't find a way to filter or query records using custom fields through the API. We have a
Sendmail function / custom action?
I've setup a function hoping to email various business departments the details of a record once all work in that record is complete so gone about setting up a custom action in such way that each record line on the report has a button to click. Question is how do I actually include data from that record in the email that is sent when the button is clicked? I had thought that since this were being sent per record the email would include the data which had been entered
Next Page