Solved

Email with recent property listing - how??

  • 17 May 2023
  • 2 replies
  • 76 views

We have a home exchange platform, and are trying to send users weekly digest emails with properties in locations they subscribe to. We want to send them the newest properties added in those locations, and if there aren’t new ones then show them ones that exist. We want the images and info about the property to port over. Also if they added a location we don’t have we wanna show them locations we do that are either also on their list, or are near a location/similar to a location on their wishlist. 

icon

Best answer by sophie 20 May 2023, 00:20

View original

2 replies

Happy to help here! To achieve this, you would first send an event to Customer.io anytime you wanted to send emails to your users about similar properties.

This request uses a bit of dynamic content. To achieve this, you would need to send all data needed to display the listings in your email. Using your customer database, you would first need to compile the list of listings for the user. Once that info is in place on your end, you would need to send the listing data over to Customer.io as event attributes. You would likely want to include event_attributes for each house listing and any information need to call the URL of the house image in the code of your email. You could then display the values of the event data sent over using the {{event.attribute_value}} Liquid tag in your campaign email. 🙂 Also, in the case that a new listing does not exist, you could use conditional logic to display existing properties if there are no values in the event attributes.

In order for an image to display in your content, you would need to have the HTML code for it set as <img src="[image_url]" alt="your chosen text" title="your chosen text"/>

[image_url] would need to be an actual URL, an event attribute that contains the URL will work fine here!

Another option here would be API triggered Broadcast. Specifically because you are looking to set up a weekly digest email. :) We aren’t able to schedule APITBs at this time, so you will have to send us the request when you want the email to be sent weekly. Additionally there is specific trigger liquid that would allow us to personalize what displays in the email for those customers while also setting up a default! :)

We have a similar use case. The first thing to decide is how you want to filter by location, like zip code, state, country.

This is the zero development method we did. Since you’re looking to send a weekly email, it could work well for you.

 

Step 1 - Location

We collect subscribers’ email address and zip code. We populated subscribers’ state from their zip code. We decided to match subscribers’ to items by state instead of zip code as it was much easier to match to 50 instead of tens of thousands. Zip code radius would be complicated and probably dev work, but matching all the zip codes to counties could be easier and no dev.

Our first campaign in Customer.io was to find their zip code in a collection and then set the person’s state attribute.

We added the Customer.io collection of zip codes from a Google Sheet.

Google Sheet of US zip codes: https://docs.google.com/spreadsheets/d/1KeRSOqXpAoPhc1elzygphFohr6rWbXqKo3wLPdInQD8/edit?usp=sharing

Customer.io Collections doc: https://customer.io/docs/collections/

Wisepops, our popup tool, also has a region field (if person is in US it populates their state) that we used as a backup if the zip code was invalid.

 

Step 2 - Populate Items

We created a report of live items in our BI, exported, then imported into an Items Google Sheet. We created a collection in Customer.io from the Items Google Sheet.

When a person’s preferences match with items, Customer.io populates the item information into a profile attribute so that it can be accessed in liquid. We also added a filter when Customer.io is querying the collection to check the end date of each item and only include items that are ending in 2+ days.

Query collection doc: https://customer.io/docs/journeys/collections/#first-add-a-query-collection-action-to-your-campaign

We used liquid to populate items, their title, image, state, and item link, within the email body. We also used liquid to populate the first item title into the email subject line. Each email is unique!

While this part is manual, we update the Items Google Sheet once a week and it takes a few minutes to do. When edits are made in the Items Google Sheet, it automatically syncs with Customer.io collection thanks to an Apps Script our Customer.io account manager gave us.

 

Step 3 - User Preferences

We created a Typeform with two questions.

  1. Multi-select states

  2. Multi-select item categories

We have a lot of item categories people can choose from. For example, we broke the vehicles category into police vehicles, trucks, EMS vehicles, dump trucks, and buses.

We moved over current preferences into a Typeform readable format so that when existing subscribers wanted to update their preferences, the Typeform pre-selected their current preferences.

Typeform Doc on Pre-selecting Answers:

https://www.typeform.com/help/a/preselect-answers-through-typeform-links-for-advanced-users-4410202791060/

We used Typeform’s hidden fields to pass over the person’s id so that we could tie their Typeform submission back to their profile without asking them to input their email.

Every email subscription form has at least one item category tied to it based on where it is displaying. The email confirmation email includes the link to the Typeform. If a person hasn’t selected any category preferences, we select category preferences for them based on their behavior, the item categories and locations they are viewing, watching, or bidding on. Whenever they submit the Typeform, it overrides whatever preferences we pre-selected for them.

Maybe Customer.io’s native preference center will allow for location selection in the future. For now, Typeform has been working great for us. We can also see a snapshot of which states and item categories people are selecting.

 

Bonus:

We’ve since added onto this in order to show popular items in different emails. We export view count of items from Google Analytics, import into the Items Google Sheet and then query the collection based on the item views, showing items with the most views in emails.

 

Hope that helps!

 

I’m hoping Customer.io’s objects or data pipelines will enable an automated way of updating items in Customer.io. Hopefully we’ll see soon! 🤞 

Reply