Send Shopify line items information to Demio (streaming tool)

Hi guys! I’m new to Parabola (coming from Zapier) and I want to see if someone can help me with this.

I have a service marketplace, were people buy online classes. People usually buy 2 or 3 classes, which then we have to enroll them to their streaming sessions on the specific event they will assist.

Each order has a couple line items since people order different products -let´s say pasta class, a wine class and a seafood class- (some of them have a one line item including a promotion for 2 classes). I want to send this information to enroll people to their specific online classes, which happen in Demio ( They have an API key, but I don’t quite catch how the flow should look like in this particular case scenario. I’m not a developer myself so I’m not really an expert even with the help of Parabola.

Right now I export CSV, copy/paste emails/name on a Google Sheet and with a Zapier function, enroll them to Demio. I can’t do this in Zapier because it only pulls the order in itself and not the line items (classes), so it can´t match which classes are being bought and, in consequence, need to be enrolled. Maybe someone can show me a path where I can solve this? Thank you very much for this, I really want to learn more on how I can achieve all of this.

Stay safe everyone!

Hey @Carlos_Mariano_Lara - Welcome to Parabola, and thanks for sharing about your use case. I definitely think Parabola can help here!

This is probably a simplified version of what your flow will look like, but the main components are there.

First, start by importing the order line items from the Pull from Shopify step. I recommend importing all columns so you know all the data that can be available to you from the import.

Then, it’s time to identify the columns that contain the data that’s important to send to Demio. You mentioned you paste emails and name to a Google Sheet, but do you need to send any other info about the order?

In this example, I used a Remove columns step to filter for columns like, Product ID, Customer First Name, Customer Last Name, and Customer Email. You should customize this step to filter for the columns that you care about for Demio.
Screen Shot 2020-07-23 at 9.05.56 AM

Once every row represents a registration we want to make in Demio, we can send that data to the Send to an API step.

I took a look at Demio’s API docs, and it looks like you can set up the request like this:

You’ll need to replace {api_key} with your API Key and {api_secret} with your API Secret that you’ve gotten from Demio.

Something I wasn’t clear on is which attributes you usually send to Demio using Zapier. Check out the attributes that Demio’s API docs list here. It lists attributes like id (your event id), ref_url (event registration page URL), date_id (event date ID). Which of this information you provide for your Zap today?

Hope this helps you get started! Excited to help you figure this out.

Hi @sachi! Thank you so much for this. This was definitely how my flow was looking yesterday! Seems the right path indeed. The one problem I don’t know how exactly I can solve is, to match line item sales to their according event. Things look like this:

Sale happens --> Customer bought “Class A, class b and class C” --> Flow identifies this in an order and sends info of the different line items to Demio (I only need name, last name and email info) --> people get registered in their class.

Thing is, how can I solve the system to know that “Class A” matches “Class A” on Demio? Right now, this flow gets Shopify info and can send it, but I don’t know if it solves the “Ok, but which event matches which sale?” In Zapier, the flow asks for an specific Google Sheet where it can pull the name and email and it extracts the info, to enroll people into their classes. I have a Google Sheet for every class and a flow for every class. Problem right now is that Shopify triggers in Zapier don’t identify line items, so if it pulls the class, it wouldn’t even make sense (unless somehow the API solves it by identifying classes and matching it to their respective stream session).

Thank you again very much for this, Sachi. I think Parabola definitely works and it surely would be a critical part of my workflow if I can solve it. Thanks!

So when I reference Demio’s API docs, it looks like we can register someone to an event if we have either the id (Event ID) or the ref_url (Event Registration page URL).

Are you able to provide a mapping between the classes in Shopify and the corresponding Event IDs in Demio? If you’re able to create a table with the mapping, we can join that table into your Shopify flow to be able to tell Demio exactly what event your customer should be registered for.

Hi Sachi!

Yes, I can map that out without a doubt. I see that, what I need to do (I’m just using some logic here), is to pull the “Line Items: Variant Id” from Shopify Info and match it to the “id” (Event ID) from Demio, since the line items stay the same always and are an specific event only. I would only need to pull email and the name of the customer also. Basically that’s all the info my flow needs to work tbh.

Is this the logic the flow should follow? How would this look or how can I do it? Thank you very much for helping me with this, I’m kind of new to Parabola.

That sounds right. First, you’ll make a mapping table like this, where you map your Shopify Variant ID to your Demio Event ID. I recommend using Google Sheets or Excel to create this table.
Screen Shot 2020-07-25 at 3.11.46 PM

Your flow should look something like this:

  1. Import your Order Line Items
  2. Use the Remove columns step to filter for the following columns:
Line Items: Variant Id
Order: Customer: First Name
Order: Customer: Last Name
Order: Customer: Email
  1. Use a Pull from Google Sheets step or Use Excel file step to import your mapping table.
  2. Use the Combine tables step to match by the Variant ID column, like so:
  3. Finally, use the Send to an API step to send the data to Demio. I believe your Send to an API step should be configured like this:

    As you can see in the Body, I’ve mapped the fields that Demio expects to the corresponding column names in Parabola.

As you test and until you make sure this flow accomplishes what you’re trying to do, I recommend adding a Remove rows step before the Send to an API step to filter down the records you export to Demio to less than 5 records. This is a good way to avoid incorrect batch updates that would be harder to undo :slight_smile:

Hope this helps!