{"id":25253,"date":"2025-04-23T17:38:01","date_gmt":"2025-04-23T17:38:01","guid":{"rendered":"https:\/\/www.gmass.co\/blog\/?p=25253"},"modified":"2025-04-30T22:40:37","modified_gmt":"2025-04-30T22:40:37","slug":"dynamic-lists","status":"publish","type":"post","link":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/","title":{"rendered":"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data"},"content":{"rendered":"<p><strong>Dynamic email lists<\/strong>\u00a0have arrived at GMass \u2014 giving you a whole new level of control and flexibility with your campaigns.<\/p>\n<p>The reason GMass has you connect to Google Sheets rather than upload a CSV of contacts <em>is<\/em>\u00a0because that <strong>Google Sheets + GMass connection enables back-and-forth communication<\/strong>.<\/p>\n<p>We\u2019ve enhanced that power even more now.<\/p>\n<p><strong>This guide covers the basics you need to know about dynamic lists.<\/strong>\u00a0We\u2019ll also cover another new list type we\u2019ve added, which are <strong>static lists<\/strong>.<\/p>\n<p>You can stop reading there\u2026 or keep digging deeper as we get into some of the more advanced implementations of these new types of mailing lists.<\/p>\n<h2 id=\"dynamic-vs-static-li-zlsh\">Dynamic vs. Static Lists in GMass: Table of Contents<\/h2>\n<ul>\n<li><a href=\"#the-basics-how-to-us-qfhy\">The Basics: What Are Dynamic Lists? And How to Use Them<\/a>\n<ul>\n<li><a href=\"#whataredynamic\">What are dynamic lists?<\/a><\/li>\n<li><a href=\"#howtocreate\">How to create a dynamic (or static) list in GMass<\/a><\/li>\n<li><a href=\"#example-of-what-it-m-cuez\">Example of what it means to have a dynamic list<\/a><\/li>\n<li><a href=\"#what-if-i-don-t-make-oomg\">What if I don\u2019t make your list dynamic or static, and just leave it as-is?<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#dynamic-and-static-l-tvzg\">Dynamic and Static List Behavior With Other GMass Features<\/a>\n<ul>\n<li><a href=\"#auto-follow-ups-uidj\">Auto follow-ups<\/a><\/li>\n<li><a href=\"#suppression-lists-cmtl\">Suppression lists<\/a><\/li>\n<li><a href=\"#recurring-campaigns-hziw\">Recurring campaigns<\/a><\/li>\n<li><a href=\"#behavior-based-segme-lktd\">Behavior-based segmentation campaigns<\/a><\/li>\n<li><a href=\"#search-based-campaig-swxo\">Search-based campaigns<\/a><\/li>\n<li><a href=\"#triggered-campaigns-zndd\">Triggered campaigns<\/a><\/li>\n<\/ul>\n<\/li>\n<li id=\"the-basics-how-to-us-qfhy\"><a href=\"#scenarios-where-you-surb\">Scenarios Where You\u2019ll Want to Use a Dynamic or Static List<\/a><\/li>\n<li><a href=\"#ready-to-use-dynamic-mkio\">Ready to Use Dynamic Lists in Your Campaigns?<\/a><\/li>\n<\/ul>\n<h2 id=\"whataredynamic\">The Basics: What Are Dynamic Lists? And How to Use Them<\/h2>\n<h3>What are dynamic lists?<\/h3>\n<p><strong>Dynamic lists<\/strong> enhance the relationship between a GMass campaign and your Google Sheet of contacts, giving you more control over adding and removing contacts from that campaign itself and any follow-up sequences or related sends.<\/p>\n<p>In the past\u2026<\/p>\n<p>When you connected a Google Sheet of contacts to a GMass campaign, your list was \u201clocked in\u201d at that moment of connection.<\/p>\n<p>So if you scheduled your campaign for the future, even if you added or removed contacts from the Google Sheet, it wouldn\u2019t matter. The recipients would be everyone on the Google Sheet at that moment you connected it to your campaign.<\/p>\n<p>But now\u2026<\/p>\n<p>With dynamic lists, you have the option to make your Google Sheet of contacts into the <strong>single source of truth<\/strong> for your campaign. No more locking in your list at a specific moment in time.<\/p>\n<p>So when you add someone to the Sheet after you\u2019ve connected it but before your scheduled campaign goes out, they\u2019ll get the email. If you delete someone, they won\u2019t.<\/p>\n<p>Same deal with auto follow-ups: if you remove someone from the sheet, they\u2019ll stop getting the sequence.<\/p>\n<p>Dynamic sheets also come into play with many other GMass sending features, giving you new, simplified levels of contact management control on behavior-based segmentation campaigns, search-driven lists, suppression, and more.<\/p>\n<p>In the past, there were ways to do a lot of what I just described \u2014\u00a0<strong>but the process was complex and usually required workarounds or &#8220;hacks.&#8221;<\/strong> Now, with dynamic lists, <strong>you can manage your contact list in the same place it lives<\/strong>: Your Google Sheet.<\/p>\n<p>In addition to dynamic lists, we&#8217;ve also added the opposite:\u00a0<strong id=\"howtocreate\">Static lists<\/strong>. With those, your Google Sheet\u00a0<em>is<\/em> locked at the moment you connect it to a campaign, so even if you alter the Sheet it won&#8217;t affect who does or doesn&#8217;t receive messages.<\/p>\n<h3>How to create a dynamic (or static) list in GMass<\/h3>\n<p>Connect a Google Sheet to start a GMass campaign as you normally would.<\/p>\n<p>As you\u2019ve seen with all your campaigns, <strong>GMass turns your list of contacts into an email alias<\/strong>. In my example here, the alias is <code>10-recipients-f9188b66@gmass.co<\/code>.<\/p>\n<p>Now you can <strong>manually modify that address to make it static or dynamic<\/strong>.<\/p>\n<p>Right click on the email alias address in the To: field of your email, and choose <strong>Change email address<\/strong>.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-editemailaddress.png\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-editemailaddress.png\" alt=\"How to edit and email address\" width=\"1999\" height=\"773\" \/><\/a><\/figure>\n<p>Now you can edit the email address.<\/p>\n<p>If you <strong>add \u201c-dynamic\u201d before the @ symbol<\/strong>, you <strong>turn your list into a dynamic one<\/strong>.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-editedaddress.png\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-editedaddress.png\" alt=\"Dynamic added to the email address\" width=\"1742\" height=\"694\" \/><\/a><\/figure>\n<p>If you <strong>add \u201c-static\u201d before the @ symbol<\/strong>, you turn your list into a static one.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/image19.png\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/image19.png\" alt=\"Static added to email address\" width=\"1742\" height=\"684\" \/><\/a><\/figure>\n<p>And, of course, you can just leave the email address as-is and GMass will continue operating as it always has for you. <strong id=\"example-of-what-it-m-cuez\">This dynamic\/static process is all optional<\/strong>.<\/p>\n<p>As of now, there\u2019s no option in the GMass interface to make a list static or dynamic. You\u2019ll need to manually alter the alias address to include \u201c-dynamic\u201d or \u201c-static\u201d.<\/p>\n<h3>Example of what it means to have a dynamic list<\/h3>\n<p>Now that I\u2019ve covered how to turn a GMass alias into a dynamic list, here\u2019s an example of what that means.<\/p>\n<p>I connected a Google Sheet that has 10 rows of data (aka 10 contacts), and the alias address <code>10-recipients-f9188b66@gmass.co<\/code> was generated.<\/p>\n<p>I then modified that to be <code>10-recipients-f9188b66-dynamic@gmass.co<\/code> for a dynamic campaign.<\/p>\n<p>I whipped up a quick campaign and scheduled it to go out five minutes later.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-scheduledcampaign.png\" data-rel=\"lightbox-image-3\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-scheduledcampaign.png\" alt=\"Scheduling a campaign with a dynamic list\" width=\"1999\" height=\"1690\" \/><\/a><\/figure>\n<p>Now I went into my Google Sheet and deleted one of the rows of data, removing a contact. That takes me down from 10 contacts to nine.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-deleterow.png\" data-rel=\"lightbox-image-4\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-deleterow.png\" alt=\"Deleting a row from a Google Sheet\" width=\"1999\" height=\"1022\" \/><\/a><\/figure>\n<p>So when my campaign went out, emails only went to the nine contacts who were in the Google Sheet at the scheduled sending time.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-sentitems.png\" data-rel=\"lightbox-image-5\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-sentitems.png\" alt=\"Now only 9 emails were sent, not 10\" width=\"1896\" height=\"1100\" \/><\/a><\/figure>\n<p><strong id=\"what-if-i-don-t-make-oomg\">If I\u2019d left the alias as-is, or if I\u2019d added \u201c-static\u201d to it rather than \u201c-dynamic\u201d, all 10 of the people who were on the Google Sheet at the time I connected it to the new campaign would\u2019ve received the message<\/strong>.<\/p>\n<p>But because I made my list dynamic, only the nine who were there at sending time received it.<\/p>\n<h3>What if I don\u2019t make my list dynamic or static, and just leave it as-is?<\/h3>\n<p>That&#8217;s ok. You don&#8217;t have to make your list dynamic or static.<\/p>\n<p>There are now three options you have with a mailing list:<\/p>\n<ol start=\"1\">\n<li>Adding \u201c-static\u201d, for instance 10-recipients-f9188b66-static@gmass.co<\/li>\n<li>Adding \u201c-dynamic\u201d, for instance 10-recipients-f9188b66-dynamic@gmass.co<\/li>\n<li>Or adding nothing to leave the list as-is, for instance 10-recipients-f9188b66@gmass.co<\/li>\n<\/ol>\n<p>Here\u2019s what will happen in each of these situations:<\/p>\n<h4 id=\"static-sapk\">Static<\/h4>\n<p><strong>Static<\/strong>\u00a0means <strong>your contact list is \u201clocked\u201d at the time you connect your Google Sheet to your campaign<\/strong>. GMass will only ever use the contacts on that list at that moment, even if you alter your Google Sheet. (Even if you try to do a recurring campaign to new rows.)<\/p>\n<p>However, do note that only the number of contacts and their email addresses are locked. When it comes to personalization data in the spreadsheet, like people\u2019s first names, GMass always pulls that at the time of sending the campaign.<\/p>\n<h4 id=\"dynamic-fqdk\">Dynamic<\/h4>\n<p><strong>Dynamic<\/strong>\u00a0means <strong>your list is <\/strong><em><strong>never<\/strong><\/em><strong>\u00a0\u201clocked.\u201d<\/strong>\u00a0So every time GMass needs to send one of your emails \u2014 your campaign, an auto follow-up, a recurring campaign, anything \u2014 it will <em>always<\/em>\u00a0consult who\u2019s on your Sheet.<\/p>\n<p>For example, if someone is scheduled to receive an auto follow-up, GMass will check the sheet before sending that follow-up to make sure that contact is still in your Google Sheet. If you\u2019ve removed them, their auto follow-up won\u2019t go out.<\/p>\n<h4 id=\"default-as-is-ayvm\">Default\/as-is<\/h4>\n<p><strong>Default\/as-is<\/strong>\u00a0is a mix of static and dynamic behaviors, though it leans toward static. If you leave your list as-is, it\u2019s \u201clocked\u201d when you connect it to your campaign. You can\u2019t remove someone from an auto follow-up sequence, for example, simply by deleting them from the Sheet.<\/p>\n<p>However, unlike a static sheet, you <em>can<\/em>\u00a0add new rows to your Sheet for recurring campaigns to new rows. I\u2019ll cover that in the section below on recurring campaigns.<\/p>\n<p><em id=\"dynamic-and-static-l-tvzg\">Continue reading to learn more about some more advanced implementations of dynamic and static lists with other GMass sending features.<\/em><\/p>\n<h2>Dynamic and Static List Behavior With Other GMass Features<\/h2>\n<p>Now that we\u2019ve covered the basics, let\u2019s talk about <strong id=\"auto-follow-ups-uidj\">how dynamic and static lists work with GMass\u2019s different sending features<\/strong>.<\/p>\n<h3>Auto follow-ups<\/h3>\n<p>One of the greatest implementations of dynamic lists is with <a href=\"https:\/\/www.gmass.co\/blog\/auto-follow-up-emails-until-reply\/\">auto follow-ups<\/a>.<\/p>\n<p>Over the years, GMass users have regularly asked us: <strong>Can I stop auto follow-ups to someone by removing them from my Google Sheet?<\/strong><\/p>\n<p>Before the answer was no. Now the answer is yes.<\/p>\n<p>Auto follow-ups work differently with dynamic lists than with static or default\/as-is lists.<\/p>\n<p>With a <strong>dynamic list<\/strong>, auto follow-ups are <strong>reliant on contacts who are on your Google Sheet at the time each auto follow-up stage goes out<\/strong>.<\/p>\n<p>So if you remove a contact from your Sheet before they\u2019re scheduled to receive a follow-up stage, you\u2019ve removed them from the sequence and they won\u2019t get that message (or subsequent ones).<\/p>\n<p>But with a <strong>static list<\/strong>\u00a0or the <strong>default list<\/strong>, removing someone from your Sheet does not remove them from your auto follow-up sequences. The way to remove them from those is to use suppression. (That technique is covered <a href=\"https:\/\/www.gmass.co\/blog\/new-feature-you-can-now-remove-someone-from-an-auto-follow-up-sequence\/\">here<\/a>.)<\/p>\n<h4 id=\"example-scenario-wit-airu\">Example scenario with auto follow-ups<\/h4>\n<p>Let\u2019s say we have a 10-person campaign with auto follow-ups going to everyone (even if they open\/reply\/click), and I send it to a dynamic list.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-autofollowsetup.png\" data-rel=\"lightbox-image-6\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-autofollowsetup.png\" alt=\"Settings for a dynamic list with auto follow-ips\" width=\"1960\" height=\"1794\" \/><\/a><\/figure>\n<p>Before the first follow-up stage is scheduled to go out, I delete 4 people from my Google Sheet.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-autofollowdeleterows.png\" data-rel=\"lightbox-image-7\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-autofollowdeleterows.png\" alt=\"Deleting the people who I don't want to receive the follow-ups\" width=\"1960\" height=\"1262\" \/><\/a><\/figure>\n<p>At the scheduled time for Stage 1, GMass checks my Google Sheet. It finds only 6 people are there, so it only sends the follow-up to those 6.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-autofollowupresults.png\" data-rel=\"lightbox-image-8\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-autofollowupresults.png\" alt=\"The results of my auto follow-ups\" width=\"1999\" height=\"1315\" \/><\/a><\/figure>\n<p>Now let\u2019s contrast that with a static list or default\/as-is list. Again, it\u2019s a 10-person campaign with auto follow-ups.<\/p>\n<p>Once again, before the first follow-up stage is scheduled to go out, I delete 4 people from the Google Sheet.<\/p>\n<p>But GMass does not check the Sheet for changes with the static or default lists. So all 10 people will still receive Stage 1. To remove them from the static\/default campaign, <strong>I would\u2019ve needed to <\/strong><strong id=\"suppression-lists-cmtl\"><a href=\"https:\/\/www.gmass.co\/blog\/new-feature-you-can-now-remove-someone-from-an-auto-follow-up-sequence\/\">add their addresses to the suppression box<\/a><\/strong>.<\/p>\n<h3>Suppression lists<\/h3>\n<p><strong>Suppression lists are a key component of our dynamic list system<\/strong>\u00a0\u2014 in fact, they were one of the big motivators for us to create this dynamic system.<\/p>\n<p>(Refresher: You use <a href=\"https:\/\/www.gmass.co\/blog\/new-gmail-mail-merge-feature-use-suppression-lists-to-filter-out-recipients-of-past-campaigns\/\">suppression lists<\/a>\u00a0to tell GMass who should <em>not<\/em>\u00a0receive an individual campaign, even if they were included in the Google Sheet of contacts for that campaign.)<\/p>\n<p>Before, there was a <a href=\"https:\/\/www.gmass.co\/blog\/use-a-google-sheets-spreadsheet-as-a-dynamic-email-suppression-list\/\">pretty clunky workaround method<\/a>\u00a0for creating a dynamic suppression list \u2014 it involved creating a fake campaign, using the \u201cjust create drafts\u201d option on that campaign, and making it recurring.<\/p>\n<p>But now, <strong>if you need a dynamic suppression list, it\u2019s much simpler<\/strong>.<\/p>\n<p>Just create a Google Sheet for your suppression list.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressionsheet.png\" data-rel=\"lightbox-image-9\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressionsheet.png\" alt=\"Creating a Google Sheet for suppression\" width=\"1712\" height=\"902\" \/><\/a><\/figure>\n<p>Connect that Sheet in GMass as if you\u2019re going to send a campaign to it, even though you\u2019re not going to \u2014 <strong>you just need to create an alias email address for it<\/strong>.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressionconnect.png\" data-rel=\"lightbox-image-10\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressionconnect.png\" alt=\"Connecting the suppression sheet to a faux campaign\" width=\"1964\" height=\"1218\" \/><\/a><\/figure>\n<p>Once GMass creates that alias address, copy it down. (Mine was <a href=\"mailto:1-recipients-b60ad13b@gmass.co\">1-recipients-b60ad13b@gmass.co<\/a>). Then close the compose window.<\/p>\n<p>Now open the compose window for the campaign where you want to use that dynamic suppression list. <strong>Put the alias in the Suppression box for the campaign, and add \u201c-dynamic\u201d.<\/strong><\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressiondynamic.png\" data-rel=\"lightbox-image-11\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressiondynamic.png\" alt=\"Altering the suppression address to make it dynamic\" width=\"1902\" height=\"1356\" \/><\/a><\/figure>\n<p>Now, <strong>whenever you add email addresses to that Google Sheet, GMass will suppress them in your campaign<\/strong>. You could also remove addresses from that Sheet if you no longer want to suppress them.<\/p>\n<p>Here I added a second address to my dynamic suppression sheet after I scheduled my campaign.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressionadded.png\" data-rel=\"lightbox-image-12\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressionadded.png\" alt=\"Adding an email to the suppression sheet\" width=\"1540\" height=\"716\" \/><\/a><\/figure>\n<p>And when the scheduled campaign went out, it only went to eight people, excluding the two on my suppression list (the one who was in there initially, and the one I added in between scheduling the campaign and when it sent).<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressedresults.png\" data-rel=\"lightbox-image-13\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" id=\"recurring-campaigns-hziw\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-suppressedresults.png\" alt=\"The results of my suppressed campaign\" width=\"1646\" height=\"668\" \/><\/a><\/figure>\n<h3>Recurring campaigns<\/h3>\n<p>In a way, <a href=\"https:\/\/www.gmass.co\/blog\/recurring-automated-email-campaigns-gmail-sheets\/\">recurring campaigns<\/a>\u00a0were the closest thing to dynamic campaigns that GMass offered in the past.<\/p>\n<p>(Quick refresher: With recurring campaigns, you can schedule GMass to send your campaign on a repeating basis. Your options were to send to new rows added to your Google Sheet, or to send to everyone on your Google Sheet.)<\/p>\n<p>Once again, <strong>recurring campaigns will work a bit different with dynamic, static, and default\/as-is lists<\/strong>.<\/p>\n<h4 id=\"example-scenario-wit-uodj\">Example scenario with a recurring campaign to NEW rows<\/h4>\n<p>Let\u2019s again say we\u2019re sending a campaign to 10 people. I set it up as a recurring campaign going out to NEW rows hourly, and I send it to a dynamic list.<\/p>\n<p>Now I add a new row with a new contact to the list. And when my campaign sends on the hour, that new person receives the campaign.<\/p>\n<p>This would also be the case if I left the alias as-is (and did not add \u201c-dynamic\u201d or \u201c-static\u201d) \u2014 as <strong>this is the default GMass behavior you\u2019re used to<\/strong>.<\/p>\n<p>Now let\u2019s say I set up that recurring campaign to 10 people, going out to NEW rows hourly, and I send it to a static list.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-recurringtostatic.png\" data-rel=\"lightbox-image-14\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-recurringtostatic.png\" alt=\"A static list with a recurring campaign\" width=\"1902\" height=\"1946\" \/><\/a><\/figure>\n<p>I add my new row.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-recurringstaticadded.png\" data-rel=\"lightbox-image-15\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-recurringstaticadded.png\" alt=\"Adding an email to the sheet\" width=\"1902\" height=\"914\" \/><\/a><\/figure>\n<p>But when the hour comes around, GMass does NOT send to the new contact I added because the list was static.<\/p>\n<h4 id=\"sending-recurring-ca-ufqb\">Sending recurring campaigns to ALL rows<\/h4>\n<p>You can also create recurring campaigns that go out to ALL rows in your Google Sheet, not just new ones.<\/p>\n<p>If you make your list dynamic or leave it default\/as-is, GMass will check your Sheet before each recurring send and send to all the rows in it \u2014 even new ones you\u2019ve added.<\/p>\n<p>But <strong id=\"behavior-based-segme-lktd\">if you make your list static, GMass will only send your recurring campaign to the contacts who were on there when the Google Sheet was first connected<\/strong>.<\/p>\n<h3>Behavior-based segmentation campaigns<\/h3>\n<p>Thus far, I\u2019ve covered one way of creating dynamic or static lists: Changing the email alias after connecting a Google Sheet to a new GMass campaign.<\/p>\n<p>But that\u2019s not the only scenario where you can make a list dynamic or static.<\/p>\n<p>You can <strong>also do so with behavior-based segmentation campaigns<\/strong>.<\/p>\n<p>(Quick refresher: <a href=\"https:\/\/www.gmass.co\/features\/segmented-campaigns\">Behavior-based segmentation<\/a>\u00a0is a follow-up campaign you send based on how recipients interacted with a previous campaign. For instance, you can send a new campaign to everyone who clicked on a prior campaign. Or to everyone who opened but didn\u2019t reply.)<\/p>\n<p>When you create a behavior-based campaign, you\u2019ll get a new alias. <strong>You can make that alias dynamic (or static) as needed<\/strong>.<\/p>\n<p>Schedule your dynamic behavior-based campaign for whenever you want to send. And it will check everyone\u2019s <em>behavior<\/em>\u00a0at that time to send.<\/p>\n<h4 id=\"example-scenario-wit-qbjx\">Example scenario with a dynamic behavior-based segmentation campaign<\/h4>\n<p>For example: If you create a behavior-based campaign to people who opened your prior campaign and there were 47 at the time you generate the campaign. You <strong>change the alias to dynamic, and schedule this campaign to the openers to go out three days from now<\/strong>.<\/p>\n<p>By that three-day mark, now 12 more people have opened the original message, bringing the total opens to 59. Because you made your behavior-based campaign dynamic, all 59 of them will receive it.<\/p>\n<p>With a static or as-is list, only the 47 openers who were there when the campaign was generated would receive it.<\/p>\n<h4 id=\"another-case-behavio-lnxd\">Another case: Behavior-based campaigns based off dynamic campaigns<\/h4>\n<p>What happens if you have a behavior-based campaign based on a dynamic campaign?<\/p>\n<p>Really, the best way to explain this one is with an example.<\/p>\n<p>Here I\u2019ve connected to a Google Sheet of 10 people. I changed the alias to make the campaign dynamic.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-behaviorinitial.png\" data-rel=\"lightbox-image-16\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-behaviorinitial.png\" alt=\"Making a campaign dynamic\" width=\"1796\" height=\"1016\" \/><\/a><\/figure>\n<p>Now I\u2019ll send it out, and open it at two of the 10 recipient addresses.<\/p>\n<p>Next, I\u2019ll create a behavior-based campaign&#8230;<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-createbehavior.png\" data-rel=\"lightbox-image-17\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-createbehavior.png\" alt=\"Creating a behavior based list\" width=\"1802\" height=\"640\" \/><\/a><\/figure>\n<p>\u2026and send it to everyone who opened.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-createbehaviorpick.png\" data-rel=\"lightbox-image-18\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-createbehaviorpick.png\" alt=\"Choosing the behavior to base the campaign off of\" width=\"1918\" height=\"1184\" \/><\/a><\/figure>\n<p>I scheduled that one to go out in the future.<\/p>\n<p>But\u2026 <strong>because I made the original campaign dynamic, it\u2019s still a live connection to the Google Sheet<\/strong>. And I deleted one of the openers from the Sheet before the behavior-based campaign went out.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-behaviordelete.png\" data-rel=\"lightbox-image-19\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-behaviordelete.png\" alt=\"Deleting a row from the sheet\" width=\"1918\" height=\"936\" \/><\/a><\/figure>\n<p>So now, only one of the openers received the behavior-based campaign \u2014 because the other was gone.<\/p>\n<p>If I hadn\u2019t made the original email dynamic, the contact I deleted off the sheet <em>would<\/em>\u00a0still receive their behavior-based campaign.<\/p>\n<h4 id=\"another-case-dynamic-hpzz\">Another case: Dynamic original campaign and static behavior-based campaign<\/h4>\n<p>Let\u2019s say you send a campaign with a dynamic list. 50 people open it. And then you create a behavior-based campaign to openers \u2014 and you make that behavior-based campaign static. You schedule the behavior-based campaign for 24 hours later.<\/p>\n<p>In the time period, you delete 10 of the openers from your Google Sheet.<\/p>\n<p>All 50 will still receive the behavior-based campaign \u2014 even the 10 you deleted \u2014 because <em id=\"search-based-campaig-swxo\">that<\/em>\u00a0list is static from the time you created it.<\/p>\n<p>If you&#8217;ve ever heard the term <strong>subsequences<\/strong>, that&#8217;s what we&#8217;re really doing here with our behavior-based campaign + dynamic list combo. We also have a deeper dive into creating <a href=\"https:\/\/www.gmass.co\/blog\/subsequences\/\">subsequences<\/a> on our blog.<\/p>\n<h3>Search-based campaigns<\/h3>\n<p>You can also use dynamic lists with <a href=\"https:\/\/www.gmass.co\/features\/gmail-list-builder\">search-based campaigns<\/a>.<\/p>\n<p>(Quick refresher: You can run any search in Gmail and GMass can build you a new email list from those search results.)<\/p>\n<p>This could be really valuable if you want to <a href=\"https:\/\/www.gmass.co\/features\/gmail-list-builder\">create an ongoing campaign going out to people who match search criteria<\/a>.<\/p>\n<h4 id=\"example-of-a-dynamic-cfpp\">Example of a dynamic search-based campaign<\/h4>\n<p>Let\u2019s say you have a form on your website where leads can contact you for more information.<\/p>\n<p>Every time someone fills out that form, you get an automatic email to your Gmail account with the subject \u201cnew website lead\u201d.<\/p>\n<p>You can <strong>create a search-based campaign in GMass<\/strong>\u00a0by searching \u201csubject: \u2018new website lead\u2019\u201d in Gmail then hitting the <strong>magnifying glass button<\/strong>.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-searchbuild.png\" data-rel=\"lightbox-image-20\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-searchbuild.png\" alt=\"Building a list off a search\" width=\"1999\" height=\"579\" \/><\/a><\/figure>\n<p>GMass will open up a new compose window with an alias address corresponding to that search.<\/p>\n<p><strong>Add \u201c-dynamic\u201d to that list<\/strong>. Type up the message you want to send to those leads. And in the settings, <strong>set this campaign to repeat daily<\/strong>.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-searchrecurring.png\" data-rel=\"lightbox-image-21\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-searchrecurring.png\" alt=\"Making my search built list dynamic and setting it to recur\" width=\"1999\" height=\"1818\" \/><\/a><\/figure>\n<p>Now, <strong id=\"triggered-campaigns-zndd\">every day, GMass will send your campaign to any new leads who\u2019ve filled out your form <\/strong>(because it finds them in its Gmail search).<\/p>\n<h3>Triggered campaigns<\/h3>\n<p>You can somewhat replicate GMass\u2019s <a href=\"https:\/\/www.gmass.co\/blog\/triggered-emails\/\">triggered emails<\/a>\u00a0feature using dynamic lists \u2014 with pros and cons.<\/p>\n<p>(Refresher: Triggered emails are <strong>messages that automatically go out when someone takes an action like opening, clicking, or replying to your initial campaign<\/strong>.)<\/p>\n<p>Here\u2019s what you can do:<\/p>\n<p>Create your initial campaign and, after you send it, create a behavior-based campaign. For an example, let\u2019s say you send it to everyone who opened the initial campaign.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-triggercreate.png\" data-rel=\"lightbox-image-22\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-triggercreate.png\" alt=\"Creating a behavior based campaign to work like a trigger\" width=\"1999\" height=\"1259\" \/><\/a><\/figure>\n<p>Now make that behavior-based campaign list dynamic.<\/p>\n<p>Type your message, and schedule it to repeat every day.<\/p>\n<figure style=\"text-align: center;\"><a href=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-triggerdynamic.png\" data-rel=\"lightbox-image-23\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-triggerdynamic.png\" alt=\"Making that behavior trigger replica campaign dynamic\" width=\"1999\" height=\"1680\" \/><\/a><\/figure>\n<p>So now, every day, GMass will send that campaign to everyone who opened your email in the past 24 hours.<\/p>\n<p>The <strong>pro of using this method<\/strong>\u00a0rather than triggered emails: Triggered emails use GMass\u2019s transactional email platform, making it harder to analyze the data. The <strong>dynamic lists use the traditional campaign analytics platform, which you\u2019re used to<\/strong>.<\/p>\n<p>The <strong>con of doing this method<\/strong>\u00a0instead of triggered emails: <strong id=\"scenarios-where-you-surb\">Part of the benefit of triggered emails is they can go out immediately<\/strong>\u00a0when someone takes an action \u2014 so you know they\u2019re in their inbox. With this dynamic list alternative, emails would go out once a day, in batches.<\/p>\n<h2 id=\"dynamic-list-dvns\">Scenarios Where You\u2019ll Want to Use a Dynamic or Static List<\/h2>\n<p>Here\u2019s a breakdown of the above, with the cases where it makes the most sense to use different types of lists.<\/p>\n<h3>Dynamic list<\/h3>\n<ul>\n<li>When you think you might want to add or remove recipients before a scheduled campaign is going out.<\/li>\n<li>When you\u2019re planning to run a recurring campaign.<\/li>\n<li>If your campaign has auto follow-ups, and you want an easy way to remove people from the auto follow-up sequence.<\/li>\n<li>If you\u2019re creating a Google Sheets specifically to use as a suppression list.<\/li>\n<li id=\"static-list-lbrc\">If you\u2019re going to run behavior-based follow-up campaigns and want to be able to easily remove people from those.<\/li>\n<li>If you want to run a recurring search-based campaign.<\/li>\n<li>If you want to run a triggered email-style campaign.<\/li>\n<\/ul>\n<h3>Static list<\/h3>\n<ul>\n<li id=\"leave-the-alias-as-i-wsjo\">If you want to make sure your campaign goes out just to the people on your Google Sheet at the time you connect that Google Sheet to a GMass campaign \u2014 no matter what edits you or your team make to that Sheet after that.<\/li>\n<li>If you\u2019re sending a recurring campaign to everyone on a Google Sheet and you don\u2019t want to add or remove anyone from that group.<\/li>\n<\/ul>\n<h3>Leave the alias as-is\/default list<\/h3>\n<ul>\n<li>Sending a standard campaign where\u2026<\/li>\n<li id=\"ready-to-use-dynamic-mkio\">\u2026you don\u2019t plan to do any behavior-based follow-ups.<\/li>\n<li>\u2026or use that campaign as a suppression list for another campaign.<\/li>\n<li>\u2026and you don\u2019t mind potentially removing people from auto follow-up sequences the more cumbersome way (through suppression lists).<\/li>\n<\/ul>\n<h2>Ready to Use Dynamic Lists in Your Campaigns?<\/h2>\n<p>Dynamic lists give you more power over your campaigns in GMass \u2014 it makes them far easier to manage no matter what types of emails you\u2019re sending.<\/p>\n<p>And good news: <strong>If you\u2019re already a GMass subscriber, dynamic and static lists are enabled on your plan<\/strong>.<\/p>\n<p>But if you\u2019re not a GMass subscriber yet \u2014 you can <strong>give it a try for free<\/strong>, with <strong>no credit card required<\/strong>.<\/p>\n<p>Just <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/gmass-powerful-mail-merge\/ehomdgjhgmbidokdgicgmdiedadncbgf\">install the Chrome extension<\/a>\u00a0and you\u2019ll be up and running. You can <strong>test out all of GMass\u2019s features<\/strong>\u00a0during your trial, including dynamic lists.<\/p>\n<p>See why nearly <strong>400,000 people use GMass<\/strong>\u00a0to send <em>all<\/em>\u00a0types of\u00a0emails \u2014 and why GMass gets an average of <strong>4.8 out of 5 stars<\/strong>\u00a0across <strong>10,000+ reviews<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dynamic email lists\u00a0have arrived at GMass \u2014 giving you a whole new level of control and flexibility with your campaigns. The reason GMass has you connect to Google\u2026<\/p>\n","protected":false},"author":29,"featured_media":25256,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[13,26,4261],"tags":[],"class_list":["post-25253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-email-campaigns","category-gmass","category-google-sheets"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data<\/title>\r\n<meta name=\"description\" content=\"How to make a GMass list dynamic so you can manage campaign recipients, auto follow-ups, suppression, and more from your Google Sheet.\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/www.gmass.co\/blog\/dynamic-lists\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data\" \/>\r\n<meta property=\"og:description\" content=\"How to make a GMass list dynamic so you can manage campaign recipients, auto follow-ups, suppression, and more from your Google Sheet.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.gmass.co\/blog\/dynamic-lists\/\" \/>\r\n<meta property=\"og:site_name\" content=\"GMass Blog\" \/>\r\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/GmailMailMerge\/\" \/>\r\n<meta property=\"article:published_time\" content=\"2025-04-23T17:38:01+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2025-04-30T22:40:37+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-feat-tinified.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"2002\" \/>\r\n\t<meta property=\"og:image:height\" content=\"934\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"Sam Greenspan\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@GMassForGmail\" \/>\r\n<meta name=\"twitter:site\" content=\"@GMassForGmail\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sam Greenspan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/\"},\"author\":{\"name\":\"Sam Greenspan\",\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/#\\\/schema\\\/person\\\/de82c1ac2f78713b569bb57bfb313c98\"},\"headline\":\"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data\",\"datePublished\":\"2025-04-23T17:38:01+00:00\",\"dateModified\":\"2025-04-30T22:40:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/\"},\"wordCount\":3521,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/dynamic-feat-tinified.png\",\"articleSection\":[\"Email Campaigns\",\"GMass\",\"Google Sheets\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/\",\"url\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/\",\"name\":\"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/dynamic-feat-tinified.png\",\"datePublished\":\"2025-04-23T17:38:01+00:00\",\"dateModified\":\"2025-04-30T22:40:37+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/#\\\/schema\\\/person\\\/de82c1ac2f78713b569bb57bfb313c98\"},\"description\":\"How to make a GMass list dynamic so you can manage campaign recipients, auto follow-ups, suppression, and more from your Google Sheet.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/dynamic-feat-tinified.png\",\"contentUrl\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/dynamic-feat-tinified.png\",\"width\":2002,\"height\":934},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/dynamic-lists\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/\",\"name\":\"GMass Blog\",\"description\":\"Tips and tricks for sending mail merge and mass email campaigns directly from Gmail\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/#\\\/schema\\\/person\\\/de82c1ac2f78713b569bb57bfb313c98\",\"name\":\"Sam Greenspan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/544dc4a3d6b96b537586cdde9d818feb8f0de187faed221fdb0dee3a356bf41a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/544dc4a3d6b96b537586cdde9d818feb8f0de187faed221fdb0dee3a356bf41a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/544dc4a3d6b96b537586cdde9d818feb8f0de187faed221fdb0dee3a356bf41a?s=96&d=mm&r=g\",\"caption\":\"Sam Greenspan\"},\"url\":\"https:\\\/\\\/www.gmass.co\\\/blog\\\/author\\\/sam_greenspan\\\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data","description":"How to make a GMass list dynamic so you can manage campaign recipients, auto follow-ups, suppression, and more from your Google Sheet.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/","og_locale":"en_US","og_type":"article","og_title":"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data","og_description":"How to make a GMass list dynamic so you can manage campaign recipients, auto follow-ups, suppression, and more from your Google Sheet.","og_url":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/","og_site_name":"GMass Blog","article_publisher":"https:\/\/www.facebook.com\/GmailMailMerge\/","article_published_time":"2025-04-23T17:38:01+00:00","article_modified_time":"2025-04-30T22:40:37+00:00","og_image":[{"width":2002,"height":934,"url":"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-feat-tinified.png","type":"image\/png"}],"author":"Sam Greenspan","twitter_card":"summary_large_image","twitter_creator":"@GMassForGmail","twitter_site":"@GMassForGmail","twitter_misc":{"Written by":"Sam Greenspan","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/#article","isPartOf":{"@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/"},"author":{"name":"Sam Greenspan","@id":"https:\/\/www.gmass.co\/blog\/#\/schema\/person\/de82c1ac2f78713b569bb57bfb313c98"},"headline":"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data","datePublished":"2025-04-23T17:38:01+00:00","dateModified":"2025-04-30T22:40:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/"},"wordCount":3521,"commentCount":1,"image":{"@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/#primaryimage"},"thumbnailUrl":"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-feat-tinified.png","articleSection":["Email Campaigns","GMass","Google Sheets"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.gmass.co\/blog\/dynamic-lists\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/","url":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/","name":"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data","isPartOf":{"@id":"https:\/\/www.gmass.co\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/#primaryimage"},"image":{"@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/#primaryimage"},"thumbnailUrl":"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-feat-tinified.png","datePublished":"2025-04-23T17:38:01+00:00","dateModified":"2025-04-30T22:40:37+00:00","author":{"@id":"https:\/\/www.gmass.co\/blog\/#\/schema\/person\/de82c1ac2f78713b569bb57bfb313c98"},"description":"How to make a GMass list dynamic so you can manage campaign recipients, auto follow-ups, suppression, and more from your Google Sheet.","breadcrumb":{"@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.gmass.co\/blog\/dynamic-lists\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/#primaryimage","url":"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-feat-tinified.png","contentUrl":"https:\/\/www.gmass.co\/blog\/wp-content\/uploads\/2025\/04\/dynamic-feat-tinified.png","width":2002,"height":934},{"@type":"BreadcrumbList","@id":"https:\/\/www.gmass.co\/blog\/dynamic-lists\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.gmass.co\/blog\/"},{"@type":"ListItem","position":2,"name":"Dynamic Lists: How to Power GMass Campaigns with Live Sheet Data"}]},{"@type":"WebSite","@id":"https:\/\/www.gmass.co\/blog\/#website","url":"https:\/\/www.gmass.co\/blog\/","name":"GMass Blog","description":"Tips and tricks for sending mail merge and mass email campaigns directly from Gmail","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.gmass.co\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.gmass.co\/blog\/#\/schema\/person\/de82c1ac2f78713b569bb57bfb313c98","name":"Sam Greenspan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/544dc4a3d6b96b537586cdde9d818feb8f0de187faed221fdb0dee3a356bf41a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/544dc4a3d6b96b537586cdde9d818feb8f0de187faed221fdb0dee3a356bf41a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/544dc4a3d6b96b537586cdde9d818feb8f0de187faed221fdb0dee3a356bf41a?s=96&d=mm&r=g","caption":"Sam Greenspan"},"url":"https:\/\/www.gmass.co\/blog\/author\/sam_greenspan\/"}]}},"_links":{"self":[{"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/posts\/25253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/comments?post=25253"}],"version-history":[{"count":6,"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/posts\/25253\/revisions"}],"predecessor-version":[{"id":25292,"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/posts\/25253\/revisions\/25292"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/media\/25256"}],"wp:attachment":[{"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/media?parent=25253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/categories?post=25253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gmass.co\/blog\/wp-json\/wp\/v2\/tags?post=25253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}