<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Parabola.io - Medium]]></title>
        <description><![CDATA[Programming, now for everyone - Medium]]></description>
        <link>https://medium.com/parabola-labs?source=rss----86b6f524cc42---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Parabola.io - Medium</title>
            <link>https://medium.com/parabola-labs?source=rss----86b6f524cc42---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 19 May 2026 12:22:30 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/parabola-labs" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Powered by Parabola #2: Weekly Spotify Playlist for Local Shows]]></title>
            <link>https://medium.com/parabola-labs/powered-by-parabola-2-weekly-spotify-playlist-for-local-shows-5fc322c362e7?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/5fc322c362e7</guid>
            <category><![CDATA[no-code]]></category>
            <category><![CDATA[makers]]></category>
            <category><![CDATA[music]]></category>
            <category><![CDATA[spotify]]></category>
            <category><![CDATA[concerts]]></category>
            <dc:creator><![CDATA[Trevor Narayan]]></dc:creator>
            <pubDate>Fri, 13 Sep 2019 04:48:47 GMT</pubDate>
            <atom:updated>2019-09-13T04:51:21.601Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uOSSUo0G24fVD-2XMgCpYg.png" /></figure><p>At Parabola we really like music: every Wednesday you’ll find the team listening to a different collaborative playlist based around a theme. Recent features have included: breakup songs, hot girl summer, and music suggestions for my upcoming wedding.</p><p>If you’re a music lover, going to concerts is the best way you can show support for musicians. Even better: go to concerts and buy a t-shirt; merch sales are a great way to directly support artists you care about.</p><p>Spotify has great support for discovering local concerts for bands you already love, but what about bands you haven’t discovered yet? If you really want to see a concert this week, but aren’t sure who to see — you’re a bit out of luck.</p><p>That’s why we decided to build Discover Local. Modeled after Spotify’s popular Discover Weekly playlist, Discover Local is a weekly playlist of music from artists who are performing in your city that week. Every Monday morning you can throw it on, find a new artist to love, and see them play live before the end of the week!</p><p>The best part? We built the entire product with zero code using <a href="http://parabola.io">Parabola</a> and <a href="http://webflow.com">Webflow</a>!</p><p>This article takes a look at how we actually made it happen, but if you just want to see the finished product you can <a href="http://discoverlocal.fm"><strong>click here to check it out.</strong></a></p><h3>Overview</h3><p>The high level program design is as follows:</p><ul><li>Local concert information comes from <a href="https://www.songkick.com/developer">Songkick</a></li><li>Tracks and playlists are sourced from <a href="https://developer.spotify.com/documentation/web-api/quick-start/">Spotify</a></li><li>Everything gets mashed up and organized in <a href="http://parabola.io">Parabola</a></li><li>Content is pushed directly to <a href="https://developers.webflow.com/">Webflow</a></li></ul><p>Seems simple, right? For the most part it is, but there are a few sticking points we’ll take you through below.</p><h3>Deep Dive: Weekly Spotify Playlist for Local Shows</h3><p>The first chunk of the program fetches upcoming concerts from Songkick. We use a <a href="https://docs.google.com/spreadsheets/d/1a0jUKAM_VpQjOlzj4GNRhYvJWCjWQqvrjTcbQwjr1v4/edit?usp=sharing">simple Google Sheet</a> to keep track of which cities we want to build playlists for, and to keep track of the date one week from now.</p><h4>Mapping City Names to Metro Ids</h4><p>Our first task is to map the name of each city to its corresponding Songkick metro id; metro ids are unique identifiers that ensure Songkick always knows <a href="https://en.wikipedia.org/wiki/List_of_the_most_common_U.S._place_names">which Washington</a> it’s talking about (there are 88 of them!).</p><p>To do that, we use a Parabola step you’re going to see quite a lot throughout this article: <a href="https://parabola.io/transforms/api-enrichment"><strong>API Enrichment.</strong></a><strong> </strong>API Enrichment makes a web request against a URL you specify once for each row of data you pass to it. The step’s other superpower is that it can dynamically substitute values from your data into the URL (or a POST body). If you want Parabola to insert a value from your data into the URL, all you have to do is type the column name wrapped in curly braces, e.g., {Your Data}, and we’ll take care of the rest.</p><p>So in this case we have a list of cities, and we’re going to make a request to Songkick’s <a href="https://www.songkick.com/developer/location-search">location search API</a> once for each.</p><pre>https://api.songkick.com/api/3.0/search/locations.json?query={Cities}&amp;apikey=YOUR_API_KEY</pre><p>Songkick sends back multiple possible locations per input, but for now we’re just going to assume the first one returned is the one we want. We use the <a href="https://parabola.io/transforms/dedupe">deduplicate step</a> to trim our data so we only have one metro per input city, and now we’re ready to fetch concerts!</p><h4>Fetch Concerts in Each City</h4><p>We use the API Enrichment step again to ask Songkick for all concerts taking place over the next week in the specified metro area. This API call requires pagination, and you can check out the flow template to see how you set that up in Parabola.</p><pre><a href="https://api.songkick.com/api/3.0/metro_areas/{api.metroArea.id}/calendar.json?apikey=YOUR_API_KEY&amp;per_page=50&amp;max_date={Date}">https://api.songkick.com/api/3.0/metro_areas/{api.metroArea.id}/calendar.json?apikey=YOUR_API_KEY&amp;per_page=50&amp;max_date={Date</a>}</pre><p>It turns out there are a <em>ton</em> of concerts every week, and each concert has multiple performers. To keep this simple, though, we’re only going to keep the top twenty from each city, and we’re only going to consider artists with first or second billing. We do that by first <a href="https://parabola.io/transforms/sort">sorting the data</a>, filtering <a href="http://parabola.io/transforms/row-filter">by billing index</a>, and finally using the dedupe step again to retain only the twenty most popular concerts for that week.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sc1ldM8Z_6rpcoHwlX5eFA.png" /><figcaption>Making headway on our flow in Parabola</figcaption></figure><h4>Source Songs from Spotify</h4><p>So at this point we’ve got a list of twenty artists in each of a handful of cities around the world.</p><blockquote><strong>Note</strong>: the program works with any city that Songkick &amp; Spotify support, but to keep it simple we’ve only seeded a few on Discover Local right now. Let us know if you want to see a playlist for your city!</blockquote><p>We need to map the artist names that we got back from Songkick to their unique identifiers in Spotify (just like we did with city names and metro ids!). We do this by calling Spotify’s search API with the artists’ names:</p><pre>https://api.spotify.com/v1/search?q={Arist Name}&amp;type=artist</pre><p>Again, there are multiple artists with the same name. We’re just going to assume that the one with the most followers is the one we want: we sort by popularity, and dedupe again, letting Parabola know that we want to keep at most two duplicates.</p><blockquote><strong>Note: </strong>Spotify APIs use OAuth — so you’ll need to set that up before interacting with Spotify in Parabola. You’ll want to use the <a href="https://developer.spotify.com/documentation/general/guides/authorization-guide/#authorization-code-flow">Authorization Code Flow</a>. If you get stuck, we have a <a href="https://learn.parabola.io/docs/how-to-connect-to-an-api-with-oauth-2-authentication">very well-written guide</a> to talk you through it. Shout-out to Brian.</blockquote><p>Now we want to fetch each artists’ top tracks:</p><pre>https://api.spotify.com/v1/artists/{api.id}/top-tracks?country=US</pre><p>Easy!</p><h4>Compose Playlists</h4><p>With tracks in hand, all that’s left is to compose them into playlists and send them over to Spotify.</p><p>We can use <a href="https://parabola.io/transforms/group-by">Parabola’s group by step</a> to concatenate all the track uris into a single column, and now we’re ready to use an <a href="https://parabola.io/destinations/api-export">API Export</a> to sync our new playlists to Spotify.</p><pre>https://api.spotify.com/v1/playlists/{Playlist Id}/tracks?uris={Tracks}</pre><p>But wait — what if the playlist for a particular city doesn’t exist yet? What about the tracks that are still in the playlist from last week?</p><p>Here’s where things get cool.</p><p>We need to implement a little create/delete procedure for our Spotify playlists before we can ship them:</p><ul><li>If a playlist doesn’t exist yet, it should be created</li><li>If a playlist exists, we should clear its contents to make way for new songs</li></ul><blockquote><strong>Note:</strong> Until recently it was pretty tricky to do something like this in Parabola, but one of our rockstar engineers, Michelle, made it so that API Exports can now block and wait until an external update completes before proceeding!</blockquote><p>At a high level what we want to do is partition the to-be-created playlists into two groups: those that exist in Spotify already and those that don’t. We first join the to-be-created playlists with a list of playlists fetched directly from our company’s Spotify account, then we branch the program down two paths. We use two row filters to ensure that only relevant rows make it into each branch.</p><p>For playlists that don’t exist yet, we run an API Export to create them:</p><pre>https://api.spotify.com/v1/users/{id}/playlists</pre><pre>Body</pre><pre>{<br>     &quot;name&quot;: &quot;{Playlist Name}&quot;,<br>     &quot;public&quot;: {public}<br>}</pre><p>Then we re-fetch the list of playlists from our company’s account so that we get back the playlist ids for those that were just created.</p><p>For playlists that need to be cleared, we use an API Enrichment to fetch the list of tracks currently in the playlist, concatenate them like we did for the new tracks just above, and then use a different API Export to clear them:</p><pre><a href="https://api.spotify.com/v1/playlists/{api.id}/tracks">https://api.spotify.com/v1/playlists/{api.id}/tracks</a></pre><pre>Body</pre><pre>{<br>   &quot;tracks&quot;:[<br>      {<br>         &quot;uri&quot;:&quot;{api.track.uri (concat)}&quot;<br>      }<br>   ]<br>}</pre><h4>Send Playlists to Spotify</h4><p>Now that our to-be-created playlists have either been created or cleared, it’s finally time to send them to Spotify!</p><p>To do that we’ll use one last API Export, and send the concatenated track list we created in the previous step over the wire:</p><pre>https://api.spotify.com/v1/playlists/{Playlist Id}/tracks?uris={Tracks}</pre><blockquote><strong>Note:</strong> there is another chunk to this program that takes the playlists and pushes them into Webflow’s CMS. We haven’t had a chance to document that bit yet, but you can click this link to create a new flow with it and explore how it works for yourself!</blockquote><h3>Conclusions &amp; Future Work</h3><p>We hope you enjoy listening to Discover Local — maybe you find a new favorite artist and make your way to their show!</p><p>If you’ve made it this far, you likely also find it cool that we were able to build this with absolutely no code in a couple of afternoons.</p><p><a href="http://parabola.io">Building in Parabola</a> is really fun and empowering. There is no app to download or libraries to install; you don’t even have to pay us — just jump in and get started!</p><p>We handle all the infrastructure pieces like scaling up/down, network I/O, and scheduled executions. As a builder, you can focus on what is actually important: the logic of your program.</p><blockquote>Our team in San Francisco is laser focused on making Parabola a place for people to build awesome stuff. If you have ideas for features we should support, want to showcase something you built, or want a job — <a href="mailto:hi@parabola.io">get in touch</a>.</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5fc322c362e7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/powered-by-parabola-2-weekly-spotify-playlist-for-local-shows-5fc322c362e7">Powered by Parabola #2: Weekly Spotify Playlist for Local Shows</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I built a single view of multi-channel ad spend with Parabola]]></title>
            <link>https://medium.com/parabola-labs/how-i-built-a-single-view-of-multi-channel-ad-spend-with-parabola-dc3cd3e26b6a?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/dc3cd3e26b6a</guid>
            <category><![CDATA[advertising]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[no-code]]></category>
            <category><![CDATA[marketing]]></category>
            <category><![CDATA[marketing-automation]]></category>
            <dc:creator><![CDATA[Trevor Narayan]]></dc:creator>
            <pubDate>Wed, 11 Sep 2019 21:47:42 GMT</pubDate>
            <atom:updated>2019-09-11T21:47:42.729Z</atom:updated>
            <content:encoded><![CDATA[<h3>How I built a unified view of our multi-channel ad spend with Parabola</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/429/1*KndMylx__F1DVaeg3wpFJg.png" /></figure><p>It was the end of May, and I had a simple question to answer: how much money were we spending on advertising each day across our three main channels?</p><p>At the time, the solutions I came up with were:</p><ol><li>Spend a bunch of time each day manually downloading reports, sum the figures, and update a spreadsheet</li><li>Ask our already-strapped engineering team to write code and create a dashboard</li><li>Pay for and set up an expensive, overkill third party SEM-management tool</li><li>Build it myself with Parabola</li></ol><p>I suppose you can guess what I did. The whole thing took me a couple hours and twenty seven Parabola steps. The flow runs every day at 8am PDT and updates a Google spreadsheet with the previous day’s ad spend. When our CEO asks me how much we spent on ads in July I can have the answer in a few seconds. It cost the company $0, and I have a work product I can feel good about!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*a83Edlez0y6Asc0NWZEicA.png" /><figcaption>The final product!</figcaption></figure><p>Below I’ll go into more detail on exactly how I made this work in Parabola, but you can also visit our site play around with or <a href="https://parabola.io/examples/ad-spend-reporting"><strong>customize my solution</strong></a> to suit your needs.</p><h3>Getting access to the ad platform APIs</h3><p>The hardest part of building this was just getting access to the ad platforms’ APIs. We’re currently running ads on Google, Facebook and Quora, so I needed access to all those services:</p><ul><li>The Facebook Ads API was by far the simplest of the three to get started. I created an Ads Application <a href="https://developers.facebook.com/docs/marketing-apis">from this page</a>, added the Marketing API to it and was able to make calls to retrieve my account data right away.</li><li>The Quora Ads API is in a private beta, so we reached out <a href="https://www.quora.com/q/quoraforbusiness/Quora-Ads-API-Beta-Program">via the form on their site.</a></li><li>For Google Ads, I had to <a href="https://developers.google.com/adwords/api/docs/guides/signup">follow the instructions here</a>. In short: sign up, wait for approval, and then get going.</li></ul><p>The other slightly complicated piece here was that both Google and Quora require authentication <a href="https://learn.parabola.io/docs/how-to-connect-to-an-api-with-oauth-2-authentication">via OAuth 2.0.</a> Parabola supports OAuth 2.0 now, but I still had to copy/paste a bunch of stuff and that created ample surface area for silly errors.</p><h3>Fetching data from the ad platform APIs</h3><p>Once I had access to the ad platform APIs, I needed to figure out what URLs to call to get the data I wanted. Parabola makes it trivially easy to extra whatever performance data you need from these APIs, but in my case I just wanted ad spend info from the last 30 days sliced by date.</p><p>Each of the APIs does this a bit differently:</p><pre><em>Facebook:</em></pre><pre>GET <a href="https://graph.facebook.com/v3.3/act_YOUR_ACCOUNT_NUMBER/insights?date_preset=last_30d&amp;time_increment=1&amp;access_token=YOUR_ACCESS_TOKEN">https://graph.facebook.com/v3.3/act_{YOUR ACCOUNT NUMBER}/insights?date_preset=last_30d&amp;time_increment=1&amp;access_token={YOUR ACCESS TOKE</a>N}</pre><pre><em>Quora:</em></pre><pre>GET <a href="https://api.quora.com/ads/v0/accounts/YOUR_ACCOUNT_ID?granularity=DAY&amp;presetTimeRange=LAST_30_DAYS">https://api.quora.com/ads/v0/accounts/YOUR_ACCOUNT_ID?granularity=DAY&amp;presetTimeRange=LAST_30_DAYS</a></pre><pre><em>Google:</em></pre><pre>POST <a href="https://googleads.googleapis.com/v1/customers/YOUR_ACCOUNT_ID/googleAds:search">https://googleads.googleapis.com/v1/customers/{YOUR ACCOUNT ID}/googleAds:search</a></pre><pre>POST body:</pre><pre>{&quot;query&quot; : &quot;select segments.date, metrics.cost_micros from customer where segments.date during last_30_days&quot;}</pre><h3>Compiling the spend report in Parabola</h3><p>Once I had the data in Parabola, compiling the report was actually really easy.</p><p>Since each API delivered slightly different data, I made a few transforms to account for things like converting micro cents to dollars, standardizing the column names/positions, and trimming extraneous columns. Then I used the join step to merge all three data chunks together based on the date (YYYY-MM-DD format).</p><p>My main goal with this project was to log our daily ad spend in a Google Sheet so that I could reference it easily, but I also wanted historical data so I could assess things like how our June spend compared to our July spend.</p><p>The problem is that Parabola doesn’t have built in support for appending values to a Google Sheet yet. So I got the opportunity to implement the append functionality myself with Parabola.</p><p>To do this, I first partitioned my data into three chunks:</p><ul><li>Older data that was in the spreadsheet but was no longer being sent back from the ad platforms</li><li>Recent data that was both in the spreadsheet and being sent back from the ad platforms</li><li>Brand new data that was being sent back from the ad platforms but not in the spreadsheet yet</li></ul><p>For each case, I told Parabola how I wanted it handled:</p><ul><li>Old data would be passed through just as it was found in the source sheet</li><li>For data in both places, I’d replace the spreadsheet data with the most data from the ad platforms (in case there was an outage/error/whatever)</li><li>New data can only come from the ad platforms</li></ul><p>Finally, I <a href="http://parabola.io/transforms/table-merge">used a table merge</a> to squash the three data partitions on top of each other, and synced it to the spreadsheet.</p><p>If you want to see more about how this example and others actually work in Parabola, <a href="https://parabola.io/categories/analyze-and-manage-ads"><strong>read more on our site</strong></a>. If you have feedback or questions, <a href="mailto:trevor@parabola.io">shoot me an email</a>!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dc3cd3e26b6a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/how-i-built-a-single-view-of-multi-channel-ad-spend-with-parabola-dc3cd3e26b6a">How I built a single view of multi-channel ad spend with Parabola</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I Built a Weekly Travel Newsletter in Parabola]]></title>
            <link>https://medium.com/parabola-labs/building-a-weekly-travel-newsletter-in-parabola-525d2530ce67?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/525d2530ce67</guid>
            <category><![CDATA[api]]></category>
            <category><![CDATA[makers]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[travel]]></category>
            <category><![CDATA[no-code]]></category>
            <dc:creator><![CDATA[Trevor Narayan]]></dc:creator>
            <pubDate>Thu, 25 Jul 2019 17:04:38 GMT</pubDate>
            <atom:updated>2019-07-25T17:09:04.364Z</atom:updated>
            <content:encoded><![CDATA[<p>Here at <a href="http://parabola.io">Parabola</a>, we don’t think you should have to write code in order to build cool stuff with computers. This is the first article in a series called “Powered by Parabola,” where we’ll be taking a look at awesome Parabola apps people have built with <em>absolutely no code.</em></p><h3>Powered by Parabola: Travel Newsletter</h3><p>When I joined Parabola in May I was eager to explore different use cases. Having just left Google’s hotel search team, travel was still top of mind.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zn27UVu9QuDEIfemRAKf6w.jpeg" /><figcaption>Hong Kong Skyline. Photo by <a href="https://unsplash.com/@smnzhu?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Simon Zhu</a> on <a href="https://unsplash.com/search/photos/hong-kong?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>I decided to build a weekly newsletter centered on an unusually cheap flight in the near future. In addition to the travel destination, I wanted my newsletter to have a few things: links for flight booking, hotel recommendations, things to do, restaurants, descriptions, and photos.</p><p>A good chunk of my time early on in this project was spent searching Google for high quality <a href="https://learn.parabola.io/docs/wtf-is-an-api-im-scared">APIs</a> that didn’t require too much paperwork to sign up.</p><p>Here is the set of services I ended up using:</p><ul><li>Flight information from <a href="https://skyscanner.com">Skyscanner</a> via <a href="https://rapidapi.com/skyscanner/api/skyscanner-flight-search">RapidApi</a>.</li><li>Destination photos from <a href="https://unsplash.com">Unsplash</a>, ranked using <a href="https://labs.everypixel.com">Everypixel’s stock photo scoring API</a>.</li><li>Weather information from <a href="https://darksky.net">DarkSky</a>.</li><li>Hotel and restaurant info from the <a href="https://api.viamichelin.com/services/api-rest/">Michelin Guide API</a>.</li><li>Attraction information from the <a href="https://developers.google.com/places/web-service/intro">Google Places API.</a></li><li>Hotel and attraction photos from Google Image Search via <a href="https://developers.google.com/custom-search/v1/overview">Google’s Custom JSON Search API.</a></li><li>Descriptions of the destination city and the attraction from <a href="https://en.wikipedia.org">Wikipedia.</a></li></ul><p>Using Parabola, I was able to blend data from all these sources into a useful, aesthetically pleasing newsletter.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UrwxKLTsgvYJ3X6aBkHq5Q.png" /></figure><p>As someone who can write code, but isn’t a software engineer, it was very gratifying to build this application in Parabola. I was able to focus on what was important for the project: the data sources, the content, etc., without having to fight with the kinds of technical roadblocks that would have normally waylaid me on a project like this.</p><p>You can <a href="https://parabola.io/examples/travel-newsletter">find the final implementation here</a>. Feel free to go check it out, and when you’re ready, you can read on for a detailed description of how I built it.</p><p>If you have feedback, questions, or want to see your program featured in this series, <a href="mailto:trevor@parabola.io">shoot me an email</a>! I’m excited to see what you’ll build. 🤙</p><h3>Deep Dive: Travel Newsletter</h3><p>I started with <a href="https://docs.google.com/spreadsheets/d/1HJzqnt98wBPGWzpaeH6n4H3j1Fn7PiqhojtXFuQ4wgU/edit#gid=0">a simple Google Spreadsheet</a> that holds a few key pieces of information: the departure date (seven days from now), the return date (14 days from now), and a list of candidate countries for the program. Google Sheets keeps these dates updated automatically for me.</p><h4>Calling Skyscanner</h4><p>My first major task was to get flight prices from Skyscanner. I <a href="https://rapidapi.com/skyscanner/api/skyscanner-flight-search?endpoint=5aa1eab3e4b00687d3574279">found an API</a> that allowed me to search for flights between an origin airport (SFO in this case), and an entire country! I could input a query for flights from SFO to Japan and get back loads of prices for flights to all major airports in Japan.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*un_fNZaYWQSGkgplyXC_Zg.gif" /></figure><p>To actually call the Skyscanner API, I used Parabola’s <a href="https://parabola.io/transforms/api-enrichment">API Enrichment</a> step.</p><p>The API Enrichment step enables connecting and getting data from just about any API by filling in a few form fields.</p><p>It makes a web request to the specified URL once for each row of input. It can also replace parts of the URL dynamically based on the input. In my case that part was essential: I needed to call Skyscanner a bunch of times for all the different SFO -&gt; Country combinations.</p><p>If this sounds hard, it’s not! You’ll see below how easy it is to get this set up in Parabola.</p><p>The RapidApi endpoint I needed to access looks like this:</p><pre><a href="https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/browsequotes/v1.0/{country}/{currency}/{locale}/{originplace}/{destinationplace}/{outboundpartialdate}">https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/browsequotes/v1.0/{country}/{currency}/{locale}/{originplace}/{destinationplace}/{outboundpartialdate}</a></pre><p>You can see there are placeholders available to input a country, currency, location, origin, destination, and outbound/inbound dates. This is where the dynamic substitution comes in handy. I specified some of the values by hand (country, currency, locale, and originplace), and had Parabola fill in the rest dynamically.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/878/1*w0J9RLeh94XjVoKL_boUAw.png" /></figure><p>After processing the input values from my Google Sheet, I am able to pass them to my API Enrichment step in the format you see on the left.</p><p>I’ve got a list of destinations (formatted in the way Skyscanner likes) each with a depart/return date. Parabola will go through every line of this input and call the Skyscanner API.</p><p>As I mentioned above, the API Enrichment step also lets you use a special curly brace notation to swap out parts of the URL with values found in your input data. In my case this was super handy because I needed to call the Skyscanner API once for each of the potential travel destinations.</p><p>In Parabola, I configure the API Enrichment step so that the URL looks like this:</p><pre>https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/browseroutes/v1.0/US/USD/en-US/SFO-sky/{Skyscanner}/{Depart}?inboundpartialdate={Return}</pre><p>Parabola will replace {Skyscanner} with the value found in the column of that name — the destination. It replaces {Depart} and {Return} with the matching values from those columns.</p><p>After a few seconds my program gets the response back from Skyscanner: a huge list of possible flights from SFO to destinations all around the world. Now I need to <a href="https://parabola.io/transforms/sort">sort the results</a> that came back from Skyscanner to find the cheapest prices.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*D8cQVS4rBzz09pM-rOzFwA.png" /><figcaption>Receiving input from Google Sheets, calling Skyscanner, sorting and filtering for the cheapest price.</figcaption></figure><p>Once I identified the destination, it was time to build a whole newsletter around it!</p><h4>Calling Wikipedia</h4><p>I use Wikipedia data twice in this program: it’s the source of both the city and the attraction descriptions. The steps are the same in both cases, though, so I’ll just explain it once here.</p><p>The best way I found to do it is:</p><ul><li>Search for articles matching the topic of interest using <a href="https://www.mediawiki.org/wiki/API:Search">Wikipedia’s search API</a></li><li>Assume the first article is the one you want. This works reasonably well for notable things (e.g., Paris, Eiffel Tower) but almost certainly breaks down for more niche interests</li><li>Retrieve article summary from <a href="https://en.wikipedia.org/api/rest_v1/#/Page%20content/get_page_summary__title_">the summary endpoint</a></li></ul><p>In Parabola, that procedure looks like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7a10JOomhiV2Vb1I-5FREA.png" /><figcaption>Calling Wikipedia in Parabola</figcaption></figure><p>First I searched for articles matching the cheap destination I had selected <a href="https://parabola.io/transforms/api-enrichment">using API Enrichment</a>. In Parabola, that ends up looking like this:</p><pre><a href="https://en.wikipedia.org/w/api.php?action=query&amp;list=search&amp;srsearch={Destination}&amp;utf8=true&amp;format=json">https://en.wikipedia.org/w/api.php?action=query&amp;list=search&amp;srsearch={Destination}&amp;utf8=true&amp;srlimit=1&amp;format=json</a></pre><p>Wikipedia returns the first article, then I make one more API Enrichment call to get a nice article summary:</p><pre><a href="https://en.wikipedia.org/api/rest_v1/page/summary/{api.title">https://en.wikipedia.org/api/rest_v1/page/summary/{api.title</a>}</pre><p>Easy, right?</p><h4>Hotels &amp; Restaurants</h4><p>Originally the newsletter only pulled in restaurant data from Yelp, but when adding in hotels I needed to find another data source.</p><p>Most big travel companies do have APIs, unfortunately there was lots of paperwork involved to start using them. Turns out the Michelin Guide offers a fairly rich API, and actually has better international restaurant coverage than Yelp, so I ended up using it for both hotels and restaurants!</p><p>The procedure for fetching hotels and restaurants is similar; I’ll only be writing up the hotels section because it’s a bit more involved.</p><p>For this newsletter, I decided to request the most expensive five star hotel in the destination. Since the flights are so cheap, you can afford to splurge on the hotel, right?</p><p>I use the <a href="https://parabola.io/transforms/api-enrichment">API Enrichment</a> step again to fetch the top result from Michelin — that’s easy — but Michelin doesn’t include any images for their hotels (they do for restaurants).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QJUUeuEeYCAWKqrC.png" /><figcaption>Bringing in the top hotel result from Michelin, and pairing it with an image from Google Image Search.</figcaption></figure><p>For hotels, I needed to get images from elsewhere. I decided to fetch the images from Google Image Search using a <a href="https://developers.google.com/custom-search/v1/overview">Custom Search Engine</a>. You can create a new CSE by <a href="https://cse.google.com/cse/create/new">following this link</a>. Note that you’ll want to enable two key options for this to work as expected: [1] switch Image Search on, and [2] switch on Search the Entire Web.</p><p>Once you’ve set up your CSE, calling it in Parabola is straightforward. In my case, I just took the first image that came back and moved along.</p><pre><a href="https://www.googleapis.com/customsearch/v1?key=AIzaSyBl2ZT9_T_TkiiePklj-bjBbke4cRQ6rZ4&amp;cx=013209630183262422340:qq-lmxxeagq&amp;q={api.datasheets.name}%20{CityName}%20rooms&amp;searchType=image">https://www.googleapis.com/customsearch/v1?key=YOUR_KEY_HERE&amp;q={api.datasheets.name}%20{CityName}%20rooms&amp;searchType=image</a></pre><h4>Points of Interest</h4><p>I decided to fetch points of interest from the <a href="https://developers.google.com/places/web-service/intro">Google Places API</a>.</p><p>Specifically, I chose to call the <a href="https://developers.google.com/places/web-service/search#FindPlaceRequests">Find Place API</a> as I only really needed one, and based on some manual testing was reasonably happy with Google’s default ranking.</p><pre><a href="https://maps.googleapis.com/maps/api/place/findplacefromtext/json?key=XX&amp;input=things%20to%20do&amp;inputtype=textquery&amp;locationbias=circle:3000@{lat},{lng}&amp;fields=name&amp;language=en">https://maps.googleapis.com/maps/api/place/findplacefromtext/json?key=XX&amp;input=points%20of%20interest&amp;inputtype=textquery&amp;locationbias=circle:5000@{lat},{lng}&amp;fields=name&amp;language=en</a></pre><p>The snippet above shows how I called the Google Places API from Parabola’s API enrichment step. I passed in a few things:</p><ul><li>input = ‘points of interest’ (url encoded). We tested this query and it seems to generally do the right thing in most cities around the world.</li><li>locationbias = circle:3000@{lat},{lng}. This searches a circle 3km around the latitude and longitude we provide. In this case we’ve already called the <a href="https://developers.google.com/maps/documentation/geocoding/start">Google Geocode API</a> to get the latitude and longitude of our destination city.</li><li>fields=name. This keeps our cost down as we’re only requesting the name of the attraction and <a href="https://developers.google.com/places/web-service/usage-and-billing#basic-data">not any of the paid SKUs.</a></li></ul><p>Once I get the attraction back from Google, I fetch its description from Wikipedia using the same procedure from before.</p><h3>Destination Photos</h3><p>What good is a travel inspiration email without beautiful imagery to accompany it?</p><p>I decided to use Unsplash as the source of my newsletter’s hero photo because (1) Unsplash photos are free and open source, and (2) they are often very beautiful.</p><p>By now you’re probably familiar with this part: we need to use API Enrichment to fetch Unsplash photos for the newsletter destination. Parabola will replace {Destination} with whatever [city, country] pair is featured in this week’s newsletter.</p><pre><a href="https://api.unsplash.com/search/photos?page=1&amp;query={Destination}&amp;client_id=X">https://api.unsplash.com/search/photos?page=1&amp;query={Destination}&amp;client_id=X</a></pre><p>Unsplash returns a bunch of metadata along with each image, but I had trouble identifying a heuristic among those attributes that reliably revealed the “best” image; I tried sorting by number of photo likes, number of user likes, etc.</p><p>Then I stumbled across a <a href="https://labs.everypixel.com/api">cool API for ranking stock photos.</a> For a small fee, this API lets you pass in a set of images and have a machine learning model score each one on its aesthetic merit.</p><pre><a href="https://api.everypixel.com/v1/quality?url={api.urls.raw">https://api.everypixel.com/v1/quality?url={api.urls.raw</a>}</pre><p>Once my program gets the scores back, it sorts them by score and filters down to the top result.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*D2bvUu2xqheNxWrIdUUOog.png" /><figcaption>Fetching photos from Unsplash, scoring them with another service, and selecting the top one.</figcaption></figure><h4>Weather</h4><p>I also wanted to help readers get a sense for what the weather would be like in the newsletter destination. Since the trip doesn’t start for seven days after the email sends, though, the extended forecast probably won’t be very accurate. Instead, I chose to display the forecast for the next week. Although not the same dates a reader would be traveling, I thought this should give folks a sense of the weather in the region.</p><p>I fetched the weather forecast from <a href="https://darksky.net/dev/docs#forecast-request">DarkSky’s forecast endpoint.</a> Again, I use API Enrichment to make the call, and use curly brace substitution to pass in the latitude and longitude of the intended destination. In the snippet below, you’d replace ‘XX’ with your API key.</p><pre><a href="https://api.darksky.net/forecast/XX/{lat},{lng">https://api.darksky.net/forecast/XX/{lat},{lng</a>}</pre><p>Things got a little bit tricky here, though. As you’ve seen Parabola, can replace items inside curly braces with values from the corresponding column. In the email template I had created, I wanted to share four days worth of weather. So I had created a bunch of placeholders that look like: {High1}, {Date1}, {Summary1} and so on.</p><p>DarkSky was giving me back several <em>rows </em>of data, and I needed four <em>columns</em> of data.</p><p>To make this happen, I trimmed the results down to four rows and numbered them using the <a href="https://parabola.io/transforms/row-numbers">row numbers</a> step. Then I used the <a href="https://parabola.io/transforms/unpivot">unpivot step</a> to duplicate what would eventually be my column names so that I had one cluster per original row of weather data.</p><pre>Type    | Value<br>-----     -------<br>Date    | Mon 24th Jun<br>Summary | Possible drizzle overnight.<br>High    | 93<br>Low     | 79</pre><pre>...  <em>and so on</em></pre><p>What would eventually become the curly brace names in my email were currently in the type column. Next, I <a href="https://parabola.io/transforms/text-merge">merged that column</a> with the row numbers I had created earlier so I end up with {Date1}, {High2}, etc. Finally, I <a href="https://parabola.io/transforms/pivot">pivot the data</a> so the column names I created would actually be the columns in my data.</p><pre>Date1        | Summary1                   | High1 | Low1 | Date2<br>Mon 24th Jun | Possible drizzle overnight | 93    | 79   | Tue 25...</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*m9bvGIEtzH4Hi8CjWUhDwA.png" /><figcaption>This procedure was pretty complicated! Thanks to Brian for helping me figure it out.</figcaption></figure><p>At this point I finally had the data I needed neatly bucketed in all the places it was supposed to go. I was ready to send my email!</p><h4>Composing and Sending the Email</h4><p>I decided to use a SendGrid campaign template as the starting point for my email, but you can use whatever email HTML editor you feel most comfortable with.</p><p>Here’s an approximation of what it looks like in the SendGrid builder. Parabola will take all the curly brace stuff and replace it with the corresponding values that I created in my data above.</p><pre>                      {DestinationDescription}<br>             {Date1}                             {Date2}<br>        {High1} // {Low1}                   {High2} // {Low2}<br>            {Summary1}                          {Summary2}</pre><p>Those curly-brace substitutions are pretty powerful:</p><pre>Bangkok is the capital and most populous city of Thailand. It is known in Thai as Krung Thep Maha Nakhon or simply Krung Thep. The city occupies 1,568.7 square kilometres (605.7 sq mi) in the Chao Phraya River delta in central Thailand, and has a population of over eight million, or 12.6 percent of the country&#39;s population....</pre><pre>        Mon 24th Jun                            Tue 25th Jun<br>         91 // 79                                 92 // 92<br>     Possible drizzle...                      Possible light...</pre><p>They work with any text, links, whatever. So after we download the HTML from SendGrid’s editor we update all the links to the appropriate curly-brace values, e.g., {DestinationImage}, {RestaurantImage}, etc. This lets Parabola substitute the image URLs with the images we fetched throughout this program.</p><pre>&lt;img src=&quot;{DestinationImage}&quot;&gt;</pre><p>Now it’s time to send the email! I did one big <a href="https://parabola.io/transforms/join">join</a> to bring together all the difference pieces that had been built up to that point: things to do, restaurants, hotels, photos, descriptions, and flight booking info. Then I passed the output <a href="https://parabola.io/destinations/sendgrid">off to SendGrid</a> for delivery.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CuHisOkaWSHWUgxg2I54-Q.png" /><figcaption>Finally sending my awesome travel newsletter to a few “lucky” teammates.</figcaption></figure><h3>Conclusion</h3><p>I hope this write up was clear, fun and informative! Again, you can check out the complete program, play around with it, or use it as a starting point for your own work by heading to <a href="https://parabola.io/examples/travel-newsletter">our examples page</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Vbk2eSeDbBs4jTzfm3yA9Q.png" /><figcaption>The complete Parabola flow!</figcaption></figure><p>Some of the API documentation I linked to in this article can seem a bit overwhelming, but its actually not as complicated as it looks. Parabola does most of the heavy lifting, and if you get stuck there are a <a href="https://learn.parabola.io/docs/wtf-is-an-api-im-scared">couple</a> of <a href="https://slashtheapidog.com/">resources</a> we’ve put together to help you. Of course, you can also always reach out to us directly via email or the Intercom chat widget on our site.</p><p>If you enjoyed this, keep an eye out for part two in the series. I’ll be exploring a Parabola program I built that generates a weekly playlist full of songs from musicians performing in your local area.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=525d2530ce67" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/building-a-weekly-travel-newsletter-in-parabola-525d2530ce67">How I Built a Weekly Travel Newsletter in Parabola</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Not everyone needs to learn how to code]]></title>
            <link>https://medium.com/parabola-labs/not-everyone-needs-to-learn-how-to-code-32f47ea7a171?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/32f47ea7a171</guid>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[product]]></category>
            <category><![CDATA[saas]]></category>
            <category><![CDATA[coding]]></category>
            <dc:creator><![CDATA[Alex Yaseen]]></dc:creator>
            <pubDate>Tue, 22 May 2018 14:07:03 GMT</pubDate>
            <atom:updated>2018-05-24T19:09:20.855Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4WwFnpJAJ4P1lWIifH6AYg.png" /></figure><p>A common refrain lately is that everyone should learn how to code. <a href="http://blogs.edweek.org/edweek/curriculum/2018/02/college_board_computer_science_graduation_requirement.html">Computer science should be a core part of middle and high school curriculums</a>, recent college grads who made the mistake of studying liberal arts <a href="https://techcrunch.com/2016/03/05/3-signs-youll-soon-be-attending-a-coding-bootcamp-at-your-college/">should immediately enroll in developer bootcamps</a>, and the only reason jobs feel scarce among the working class is that <a href="https://www.wired.com/2017/02/programming-is-the-new-blue-collar-job/">they haven’t morphed themselves into software engineers</a>.</p><p>We disagree. Coding as it’s defined today is difficult to learn and even harder to do well. Not only that, but specialization in other roles is more important than ever. Nonetheless, the ability to code does confer some incredible benefits in terms of productivity and output.</p><p>This is exactly why we’re building <a href="https://parabola.io?utm_source=Medium&amp;utm_medium=content&amp;utm_term=learn_to_code&amp;utm_campaign=marketing">Parabola</a>. Think of it as a way to apply the benefits of coding without having to learn how to “code” as it’s defined today. But before we dive into exactly what Parabola is, let’s take a step back and look at the current state of the world.</p><h3>Coding is difficult</h3><p>Now certainly, learning how to code <em>could</em> be a fantastic opportunity. But getting to the point where you’re familiar with and can use modern programming languages/frameworks for something real is hard. It requires more time and commitment than acknowledged by those recommending learning to code. There’s a steep learning curve, entirely new mindsets to adopt, and a large amount of overhead to stay up-to-date. If you want to be a professional software engineer, the investment is sensible. For the rest of us, though, the effort isn’t worth it just to be able to use computers more efficiently.</p><h3>Specialization is important</h3><p>Taking a step back, <a href="https://thenewinquiry.com/milton-friedmans-pencil/">specialization of jobs</a> has been a key factor in the increasing prosperity of the world. Most people don’t grow their own food, make their own clothes, build their own furniture, or record their own music (although if you do all of those things, we should hang out!). Instead, a few people specialize in each of those tasks and then sell their work to the rest of us, who specialize in other tasks. The result is work gets done by people who are actually experts in their field. Both quality and quantity increase.</p><p>In the business world, we do the same thing. We split our companies into marketing, sales, product, operations, and more. Further still, we have specialties and sub-specialties within each of those departments. In marketing, for example, some people specialize in outbound email campaigns, while others optimize search engine marketing, and still others manage social media. This specialization makes sense. Most companies probably don’t want their finance team running their Twitter account, or the marketing team ensuring GAAP-compliant accounting. Why then should people in any of those departments be expected to spend their time learning to code?</p><h3>Software is leverage</h3><p>On the other hand, coding does have a lot of benefits. A person’s “leverage” is the amount of output they can get from a given period of time. People who know how to code have a huge amount of this kind of leverage, and can get a lot of output from each unit of time they put in. This is why software engineers get paid so much.</p><p>This leverage primarily results from three factors. Code can:</p><ul><li>Automate manual work</li><li>Make working with large data sets possible</li><li>Package complex tasks up into simple programs for others to use</li></ul><p>These three factors are surprisingly powerful, and are why the most valuable companies in the world are now tech companies.</p><h3>Shouldn’t you be able to do these things without learning to code?</h3><p>Yes. The ability to code gives engineers superpowers because of how much leverage they have on their time. Parabola gives everyone else the same superpowers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r8G39cQhd_i980ymfj8Xxg.png" /></figure><p>Now let’s be clear. Parabola doesn’t do everything a software engineer can. We’ve designed Parabola with a set of trade-offs, but they’re trade-offs we think you’ll really like and appreciate.</p><p>Using an entirely drag-and-drop interface, Parabola enables everyone to create repeatable flows that interact with a <a href="https://parabola.io/sources?utm_source=Medium&amp;utm_medium=content&amp;utm_term=learn_to_code&amp;utm_campaign=marketing">variety of other tools</a>.</p><p>That process where you export 5 different CSV files, run a SQL script someone made you once but you don’t know how it works, copy and paste it all into Excel, write a bunch of VLOOKUPS (or INDEX/MATCH if you’re an excel ninja) to merge it all together, stare at it to make sure you pasted correctly, delete columns, find/replace a bunch of things, and then 10 other manual steps before you send the results to 5 different people by email? You can build that all into Parabola once, and then it can be scheduled to run whenever you want without any more manual work from you.</p><p>But that’s just scratching the surface of <a href="https://parabola.io/examples?utm_source=Medium&amp;utm_medium=content&amp;utm_term=learn_to_code&amp;utm_campaign=marketing">what Parabola can do</a>. Parabola can also work with large data sets that would crash a spreadsheet tool, and your flows can even be packaged up and shared with other people. We have customers using Parabola to build custom marketing attribution reports, extend the functionality of their CRM and marketing automation tools, and even monitor fleets of ground moisture sensors to fine-tune irrigation schedules.</p><p>The best part? There’s no infrastructure to maintain, no code to write, and no waiting on engineers or IT to help you. You can <a href="https://parabola.io/signup?utm_source=Medium&amp;utm_medium=content&amp;utm_term=learn_to_code&amp;utm_campaign=marketing">sign up</a> for free right now and immediately start reducing busywork and increasing your leverage.</p><p>If you’d like to learn more, you can visit our website at <a href="https://parabola.io?utm_source=Medium&amp;utm_medium=content&amp;utm_term=learn_to_code&amp;utm_campaign=marketing">parabola.io</a> or reach out to us at <a href="mailto:hi@parabola.io">hi@parabola.io</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=32f47ea7a171" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/not-everyone-needs-to-learn-how-to-code-32f47ea7a171">Not everyone needs to learn how to code</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Refining our Logo, Before and After]]></title>
            <link>https://medium.com/parabola-labs/refining-our-logo-before-and-after-2d5cadf007f7?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/2d5cadf007f7</guid>
            <category><![CDATA[branding]]></category>
            <category><![CDATA[product]]></category>
            <category><![CDATA[logo-design]]></category>
            <category><![CDATA[design]]></category>
            <dc:creator><![CDATA[Jon Sutherland]]></dc:creator>
            <pubDate>Mon, 23 Apr 2018 22:10:05 GMT</pubDate>
            <atom:updated>2018-04-23T22:13:53.298Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*GbvK4BDd46qEhSaDco-WRg.gif" /></figure><p><a href="https://parabola.io">Parabola</a> gives non-coders the building blocks they need to create complex data flows in a drag and drop interface. Our logo was designed to reflect that: take a bunch of basic shapes and combine them in an intelligent way to create something greater than the sum of the individual pieces.</p><p>I’ve always loved the concept, but the first version of the logo looked just a little too complex, and became unreadable at smaller sizes. Because of these issues, we decided to refine it.</p><h3>Removing the excess overlap</h3><p>The main problem with the original logo, particularly at smaller sizes, was that there were just too many color transitions created by the overlapping shapes. The B was the worst of them all with 7 different regions. We decided on a goal of keeping each character to a maximum of three regions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SFway8fi__zQov9S2cph7Q.png" /></figure><p>An additional benefit of limiting ourselves to three regions per character was going to be getting rid of the two extra colors required for the B. These two extra blues did not exist anywhere else in our app, so we wanted to get rid of them entirely (we were also updating our color palette at the same time, which is why the blues are different).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*d67gqyuEntMsH1v5RVW1Sg.png" /></figure><p>We were able to clean up the P, R, and B and refine their shapes to only use a maximum of three regions and two unique colors. We also tweaked the L to line up with the other letters.</p><h3>Some final tweaks</h3><p>We widened the As to make them less spiky, and made the spacing between all characters equal, except for the P &amp; A. The shape of those characters required kerning, so we shrunk the padding to zero between them.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iRm3GnM0j3u2vxeTRgbuVA.png" /></figure><h3>The Result</h3><p>We’re super excited with how it turned out! Widening the As and adding more space between characters resulted in a slightly wider logo, but so far it’s worked great with our UI. Check out the final result below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RwY9F51DvThkgNiX9HrYAg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*E3XZeZwqUknmjzfukcK20A.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AgC8QGQLEtEFI1iHFNJ5Bw.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5uLyT7Qpi-Sfx19No-vLfw.jpeg" /></figure><p><em>Thanks for reading! If you’re interested in learning more about Parabola, check out our website </em><a href="https://parabola.io"><em>here</em></a><em>. You can sign up for a 14-day free trial, no credit card required.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2d5cadf007f7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/refining-our-logo-before-and-after-2d5cadf007f7">Refining our Logo, Before and After</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Some lessons learned designing a complex product like Parabola]]></title>
            <link>https://medium.com/parabola-labs/some-lessons-learned-designing-a-complex-product-like-parabola-c37f9679463f?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/c37f9679463f</guid>
            <category><![CDATA[product]]></category>
            <category><![CDATA[big-data]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[ux]]></category>
            <dc:creator><![CDATA[Jon Sutherland]]></dc:creator>
            <pubDate>Mon, 09 Apr 2018 17:44:18 GMT</pubDate>
            <atom:updated>2018-05-14T20:15:28.718Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vO9AGjsmg0DL3W1JzrM0fQ.png" /></figure><p>How would you take your data from Stripe, dedupe, clean, and transform it based on a bunch of rules, enrich it with Clearbit, and push the results to Salesforce and Geckoboard? What would you do if you had to repeat the process every month, week, or day?</p><blockquote>“Do it manually, or hire a developer.” — Everyone</blockquote><p><a href="https://parabola.io">Parabola</a> was built to solve the headache of data processes like this. You can build unique data flows in minutes that pull data from other apps, transform that data in almost any way imaginable, then pipe it to its destination. The best part is, once you’ve built your flow once, you can set it to run automatically on any schedule. And you can do all of this without looping in a developer.</p><p>It’s a complex product, and it took a ton of design iterations to get to where we are today. Here are some lessons we’ve learned trying to make this complex product feel simple and intuitive.</p><h4>Maintain an effective information architecture 👁</h4><p>Information Architecture (IA) is the art and science of organizing and labelling websites and software to support usability and findability. <a href="https://en.wikipedia.org/wiki/Information_architecture">Wikipedia</a></p><p>Maintaining an effective IA is one of those balancing acts that is so hard to get right, so hard to maintain, especially when there are multiple teams working on different features with little communication between them. It takes a lot of persistence to not only improve, but also just maintain the effectiveness of your information architecture as your feature set grows.</p><p><strong>Your IA falls into one of these three categories…</strong></p><p><strong>Too complex:</strong> If a product is too complex at first glance, it can feel overwhelming to the user as their eyes dart back and forth looking for the thing they’re currently interested in.</p><p><strong>Too simple:</strong> If a product is too simple at first glance, with the meat of the functionality buried, it can be cumbersome to use as you drill in and out of different parts of the product.</p><p><strong>Just right:</strong> Your users can immediately get a sense for what they can do with your product, how they can do it, and they can get started with zero cognitive friction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/259/1*VXvzxjivlL2gEBp_sqPRaA.gif" /></figure><p><strong>How to find your “just right” information architecture</strong></p><p>You need to empathize with your customers, make their problems your problems, and you need to have a feedback loop in place that enables you to be constantly learning from them. Finding your just right information architecture doesn’t happen overnight, it more often comes after tons of iterations.</p><p>This earlier prototype of Parabola shows just how many things we had competing for your attention. When new users landed on this screen for the first time, they were blasted with five separate panes, two of which had three separate tabs, a bunch of colors that didn’t really tell them much, and zero guidance for how to get started.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BkxFUFlylh33YUkvxzyJvw.png" /></figure><p>This pretty much looked like Xcode, which was built for developers. Since we’re trying to create a visual programming language that anyone can use, we knew we needed to simplify. Here’s Parabola today:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_NpDu8Fy1VjDgWeKwK9w2A.png" /></figure><p>We cut out all but one of the panes, simplified the objects on the canvas, and added tooltips to guide you along your journey to becoming an activated user.</p><h4>New features are exciting, and risky 👹</h4><p>As new features are added, you should analyze just how important they are to the product as a whole, and slot them into your IA accordingly. Every new feature you add steals attention from its adjacent features, so you need to be sure the trade-off is worth it. They can also change how your users think about your product, sometimes in unintended ways.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/565/1*6ImhpIn4awzhG3tTHUiQAw.png" /></figure><p>With Parabola, we’ve ripped out a lot of stuff in order to bring attention back to the features that support our key value proposition. When we added charts and graphs, our users’ perception of our product went from a “tool to automate data processes” to a “tool to create data visualizations”.</p><p>Which is not what we wanted at all. So after spending a lot of time building the feature and launching it to users, we ripped it out. Sometimes ripping out features can be just as important as adding new ones.</p><p>The goal is, though, to not have to. Which brings me to my next point.</p><h4>Data is your best friend 🔢</h4><p>It’s cheap and easy to send a survey to validate your ideas with user feedback. It’s expensive and slow to build something that your users don’t want.</p><p>Use analytics data, user tests, and surveys to gather as much information as you can to effectively shape your roadmap to align with what you and your customers want your product to become.</p><blockquote>“In God we trust, all others bring data.” W. Edwards Deming</blockquote><p><strong>Some tools I recommend</strong></p><p><a href="https://segment.com">Segment</a>: Pipe data to any analytics tool<br><a href="https://fullstory.com">FullStory</a>: Watch how users interact with your product<br><a href="https://typeform.com">TypeForm</a>: Send out surveys to your customers</p><h4>Be consistent with your visuals 🎨</h4><p>Visual design is often perceived as creating pretty illustrations and pixels, but it goes far beyond that. Creating a clean visual design language that is enforced across every component in your product will make everything feel more consistent and digestible. Every new UI element and visual style or color you introduce adds more cognitive load for the user, so it should be done sparingly.</p><p>At Parabola, we have one shared Sketch library (<a href="https://sketchapp.com/docs/libraries/">what’s that?</a>), which has every component we use in our app and all their different states. When we update a component in the library, it updates in all of our designs automatically.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mfZ8CXar0Evvs7elyJ7Ggw.png" /></figure><p>This is also why we decided to bundle our marketing site and app together in one repository. We want to ensure that as our users transition from our marketing site to the app, the visual language remains exactly the same (because they use the same code!). We don’t have to worry about styles changing in one repository but not in another.</p><h4>Final thoughts</h4><p>There’s no silver bullet when it comes to designing a great product. Great products are the result of thousands of improvements, hundreds of iterations, and talking to customers every step of the way.</p><p><em>If you’re interested in Parabola, </em><a href="https://parabola.io"><em>sign up</em></a><em> for a 14-day free trial, no card required.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c37f9679463f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/some-lessons-learned-designing-a-complex-product-like-parabola-c37f9679463f">Some lessons learned designing a complex product like Parabola</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Give Time Back to your Sales Team with Codeless Automation]]></title>
            <link>https://medium.com/parabola-labs/give-time-back-to-your-sales-team-with-codeless-automation-90630ea89325?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/90630ea89325</guid>
            <category><![CDATA[salesforce-productivity]]></category>
            <category><![CDATA[sales]]></category>
            <category><![CDATA[sales-automation]]></category>
            <category><![CDATA[automation]]></category>
            <category><![CDATA[salesforce]]></category>
            <dc:creator><![CDATA[Brian Sanchez]]></dc:creator>
            <pubDate>Tue, 10 Oct 2017 18:21:20 GMT</pubDate>
            <atom:updated>2017-10-18T01:38:00.433Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qUavizZcMDBTFwFRLlgS8Q.png" /></figure><p>If you’re a sales leader or SDR, you’ve felt the soul-crushing time drain of maintaining and updating Salesforce or another CRM with lead status, communication channels, profile data, and so much more. It’s excruciating.</p><p>Add in the frequently manual process of compiling reports on a regular basis, and it’s no wonder why sales teams spend a good chunk of their quarter not selling. <strong>In fact, sales teams, on average, </strong><a href="https://blog.hubspot.com/sales/salespeople-only-spent-one-third-of-their-time-selling-last-year"><strong>spend almost a third of their time</strong></a><strong> updating CRMs, managing data, and creating reports</strong>. That’s time that could have been spent prospecting, contacting leads, giving demos, or closing deals.</p><blockquote>Your sales team spends one-third of their time not selling.</blockquote><p>Even if you’re lucky and your sales tools already have integrations with your CRM, <strong>data frequently doesn’t quite line up</strong>. Reports for a specific metric never seem to have the right data.</p><p>To make matters worse, if you want to automate anything in Salesforce, you are going to need a consulting agency <em>(read: far too expensive for what you get)</em> or dedicated engineering time <em>(read: a waste of resources)</em>.</p><p>We feel your pain, and that’s why we’ve built Parabola.</p><p><a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Sales_Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a> enables <em>anyone</em> to work with and automate their data as effectively as an engineer without needing spreadsheets or code.</p><h3>Quickly and easily connect to any data, no engineers required</h3><p>With the increasing number of tools utilized by most sales teams, it’s becoming common to have data that is incomplete, incompatible, or inconsistent. Trying to connect disparate date is usually a task limited to overworked development teams. <a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Sales_Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a><strong> </strong>has an ever growing list of integrations <em>(including common databases)</em> that allow you to pull in data from anywhere in a few clicks, without any code required.</p><blockquote>Pull in data from anywhere in a few clicks, without code.</blockquote><p><strong>With data integrations and automation, you can:</strong></p><ul><li>Join <strong>Google Analytics</strong> data with <strong>Stripe</strong> data, to see which blog articles bring in the most enterprise customers.</li><li>Connect <strong>Mailchimp</strong> campaign data with both <strong>Salesforce</strong> and analytics data stored in <strong>Redshift</strong> to get a complete picture of what a user is doing on and off your site, before trying to up-sell them.</li><li>Use custom logic and references to data from other services to automatically update <strong>Salesforce</strong> accounts and leads.</li><li>Create a <strong>shared data pipeline</strong> that can be used by multiple users for reporting, analysis, or normalization.</li><li>Send out <strong>live sales reports</strong> synthesized from multiple sources to your team.</li><li>Automatically clean new data before it enters your <strong>CRM.</strong></li><li><strong>Update Salesforce leads</strong> to Do Not Contact using the results from an opt-out link in automatic emails, or from a form on your site.</li><li><strong>Update a lead to an opportunity automatically</strong> when a lead performs some sort of action visible in analytics, or through a form.</li><li>Check leads without Opportunities Set against your new contacts, to catch inconsistencies. Then <strong>automatically update the leads</strong> to have Opportunities Set.</li><li>Automatically update Salesforce via <strong>Google Forms</strong> used by AEs and SDRs for<strong> quick data entry.</strong></li></ul><h3>Reclaim your day with automation</h3><p>Most of the hassle of a powerful CRM like Salesforce comes from keeping records up-to-date. Why are you spending <em>a third of your week</em> updating Salesforce and generating custom reports?</p><p>Automation takes care of the menial tasks that feel manual and slow, and gets a team back to doing what they do best — selling. Using<strong> </strong><a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Sales_Automation&amp;utm_campaign=DemandGen"><strong>Parabola’s</strong></a> Automation, you can recapture enough time to help your sales team blow past quota and still make it to happy hour.</p><blockquote><a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Sales_Automation&amp;utm_campaign=DemandGen">Use Parabola to Automate your manual sales data tasks today</a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=90630ea89325" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/give-time-back-to-your-sales-team-with-codeless-automation-90630ea89325">Give Time Back to your Sales Team with Codeless Automation</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Automating the Rest of Your Marketing Pipeline]]></title>
            <link>https://medium.com/parabola-labs/automating-the-rest-of-your-marketing-pipeline-c11ba0ff5bf7?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/c11ba0ff5bf7</guid>
            <category><![CDATA[data]]></category>
            <category><![CDATA[email-marketing]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[marketing]]></category>
            <category><![CDATA[automation]]></category>
            <dc:creator><![CDATA[Brian Sanchez]]></dc:creator>
            <pubDate>Tue, 03 Oct 2017 18:31:36 GMT</pubDate>
            <atom:updated>2017-10-10T19:25:47.184Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0U3XXFDzy2ixuDuTEiegIg.png" /></figure><p>When it comes to automated email marketing, the underlying data is directly tied to a campaign’s success. With good data, services like Mailchimp, Active Campaign, Hubspot, Marketo, and others can do a great job of sending personalized marketing emails to targeted consumers.</p><p>The power of good email marketing automation lies not in the volume or scheduling of the emails, but in the level of testing, iteration, and ultimately personalization.</p><p>In order for email marketing to be successful, you need to:</p><blockquote>Collect and understand the data to be used for personalization</blockquote><blockquote>Understand and measure the goal of each campaign</blockquote><p>Then you can <strong>build an automatic email marketing machine</strong> that reaches qualified leads and <strong>delivers personalized messages that resonate.</strong> This is how you can quickly expand your marketing efforts and see an <strong>instant return</strong>.</p><p><a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email_Marketing_Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a><strong> </strong>drastically speeds up and simplifies this data legwork. Here are the steps to deal with multiple data sources, automate your data management, and track custom marketing goals that update your strategy:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6r0G66CKDFYHKGLfg06-fg.png" /><figcaption>Unifying data in Parabola</figcaption></figure><h3>1. Collect and unify your data</h3><p>Collecting raw data for automated email marketing is easy. You probably have any number of the following:</p><blockquote>A <a href="http://www.investopedia.com/terms/l/lead-magnet.asp">lead magnet</a> on your site to draw in new visitors and passively collects emails.</blockquote><blockquote>A lead chat solution like Intercom to collect pieces of data about leads as they talk to you.</blockquote><blockquote>An email newsletter or blog sign up form</blockquote><blockquote>An integration with Clearbit to deliver data enrichment</blockquote><blockquote>A CRM like Salesforce containing a table of leads and their statuses</blockquote><p>All of this data lives in separate locations, each with its own unique environment and set of rules. This data becomes a powerful marketing asset when you combine it into a complete data picture.</p><p>Using <a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a>, anyone can import and combine data from any of these sources. <a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a> then enables anyone to clean, dedupe, merge, filter, enrich, and add logic to the data, all without touching a line of code or dealing with a fragile spreadsheet.</p><p>For example, with <a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a>, you could automate <strong>a retargeting campaign</strong> <strong>for leads</strong> who previously downloaded your lead magnet, but never converted:</p><blockquote>Import your Salesforce leads</blockquote><blockquote>Filter down to those who have not converted in the last 60 days</blockquote><blockquote>Import your lead magnet email list</blockquote><blockquote>Join the two lists, only keeping those who who exist in both</blockquote><blockquote>Import your Clearbit data for those emails</blockquote><blockquote>Use that to add in names, company sizes, industry, and more</blockquote><blockquote>Export that data to your email campaign tool</blockquote><p><a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a> has created a list of people to retarget and some information to use in the email personalization. Generally, using first names (instead of full names) increases open rates, so use the <a href="https://parabola.io/recipes/separating-name-fields?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email_Marketing_Automation&amp;utm_campaign=DemandGen"><strong>Name Parser Object</strong></a> to pull out first names.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*ymGl2dXTBfYFJmCm57ie4A.png" /><figcaption>Schedule your flows to run automatically</figcaption></figure><h3>2. Automate the data</h3><p>Unified data can be used to create personalized emails that will attract and convert leads.</p><p>You could repeat the aforementioned steps with each segment of leads that you are targeting, but that could take hours to pull each new data set and run the flow manually. Your time should be spent on analyzing, testing, and iterating, so <strong>why not automate the data processing?</strong></p><p>Once a flow is set up,<a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen"> schedule <strong>Parabola</strong></a> to automatically refresh the data coming in and then pass it through the transformations in your flow. Set it to run automatically every day, or just when you have a new campaign to send out. <strong>The data always stays fresh.</strong></p><h3>3. Take your personalization to the next level</h3><p>Basic company data is not that impressive for automated email marketing. How about sending to multiple email addresses, some who are CC’ed, and having the salutation automatically include all the first names, with proper punctuation? <strong>That would be far too time consuming to do manually without </strong><a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a>.</p><p>For example, when marketing a service that charges per seat — it would be common to target adjacent employees in the company who are not yet using your service. Obviously, a hand-typed email would be best, but sales and marketing superstars don’t have time for that.</p><p>Use a combination of <a href="https://parabola.io/transformations?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen"><strong>data manipulation objects</strong></a> to build a flow that will combine the first names of all of the recipients at a company, join them with commas, and insert an “and” before the final name. Even add “(CC’ed)” after each name whose email is in the CC column of the table.</p><p><strong>This can be done automatically and intelligently</strong>, checking if there are leads who are not closed, and who have colleagues already using the service. When someone’s colleague signs up for the newsletter months from now, they will receive an extremely personalized email — automatically.</p><h3>4. Custom goal tracking without an engineer</h3><p>Most marketing automation tools have some form of goal tracking feature, but let’s be honest, <strong>it never works like you want it to</strong>. Many times the utility of goals is limited by the tool.</p><p><strong>To maximize your efficacy, you need custom goals</strong>. Ty to set a goal that x% of the people who receive the campaign should sign up on a business-tier plan within 30 days, and they should invite at least one colleague to join them. How could that goal be set without involving an engineer?</p><p>With <a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen"><strong>Parabola</strong></a> create this complex goal by simply branching off of the flow, and adding in a few more data sources:</p><blockquote>Data from Salesforce on who has invited users</blockquote><blockquote>Data from Salesforce on who is on which plan</blockquote><p>Take that data and do the following:</p><blockquote>Join it with the existing table of leads who received the campaign</blockquote><blockquote>Filter it for leads who are still within the 30 day success window</blockquote><blockquote>Total it up</blockquote><p>The results are custom goal success metrics. You could even plot them on a chart to track performance over time.</p><h3>Automatic email marketing is a foundation for growth</h3><p>Companies grow by generating continuous demand and then capturing and nurturing leads. Adding automation and improving the efficiency of the top of the funnel is a great way to grow your business while simultaneously freeing yourself up to <a href="https://parabola.io/recipes/summarize-data?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email_Marketing_Automation&amp;utm_campaign=DemandGen"><strong>tweak</strong></a><strong> </strong><a href="https://parabola.io/recipes/if-else?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email_Marketing_Automation&amp;utm_campaign=DemandGen"><strong>other</strong></a><strong> </strong><a href="https://parabola.io/recipes/phone-number-cleaning?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email_Marketing_Automation&amp;utm_campaign=DemandGen"><strong>areas</strong></a><strong> </strong>of your sales and marketing engine.</p><blockquote>☞ <a href="https://parabola.io/?utm_source=Medium&amp;utm_medium=Article&amp;utm_term=Email+Marketing+Automation&amp;utm_campaign=DemandGen">Improve your marketing automation with Parabola today</a>☜</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c11ba0ff5bf7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/automating-the-rest-of-your-marketing-pipeline-c11ba0ff5bf7">Automating the Rest of Your Marketing Pipeline</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to extract and separate names within a dataset]]></title>
            <link>https://medium.com/parabola-labs/how-to-extract-and-separate-names-within-a-dataset-without-code-or-spreadsheets-a0ecdf120b95?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/a0ecdf120b95</guid>
            <category><![CDATA[forms]]></category>
            <category><![CDATA[excel]]></category>
            <category><![CDATA[spreadsheets]]></category>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[data]]></category>
            <dc:creator><![CDATA[Brian Sanchez]]></dc:creator>
            <pubDate>Tue, 20 Jun 2017 21:04:33 GMT</pubDate>
            <atom:updated>2017-06-21T17:57:36.676Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gZ5pogZ3Heo0IArvbrOmqA.png" /><figcaption>Using the Parabola Name Parser Object</figcaption></figure><p>Many forms ask for a contact’s full name (rather than first and last). This can help streamline data entry and improve form completion rates. However, it can cause problems when you want to use just a specific part of the name. For example, using merge tags to send custom emails. “Hi John Smith” doesn’t feel as personal as “Hi John”.</p><p><a href="https://parabola.io/recipes/separating-name-fields">Use the Name Parser Recipe here.</a></p><p>Parabola’s Nam Parser Object is specifically created to extract any part of a name. It can extract any of the following name types into new columns:</p><ul><li>Salutation</li><li>First Name</li><li>Middle Name</li><li>Last Name</li><li>Suffix</li><li>Full Name</li></ul><p><a href="https://parabola.io/recipes/separating-name-fields">Get started with the Name Parser Recipe</a> and split your name data easily.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/826/1*1T_vmoBKxr8i1TFRZhZX_Q.gif" /><figcaption>Use the Name Parser Object to extract names quickly</figcaption></figure><h3>Become a data superstar</h3><p>Parabola enables anyone with any level of data or technical knowledge fully transform, analyze, and visualize any dataset. Without using spreadsheets or code.</p><p>For more recipes and data solutions, check out our <a href="https://parabola.io/recipes">Recipe Page</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a0ecdf120b95" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/how-to-extract-and-separate-names-within-a-dataset-without-code-or-spreadsheets-a0ecdf120b95">How to extract and separate names within a dataset</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Join, clean, and export your email data]]></title>
            <link>https://medium.com/parabola-labs/join-clean-and-export-your-email-data-without-code-or-spreadsheets-b8a3598c589e?source=rss----86b6f524cc42---4</link>
            <guid isPermaLink="false">https://medium.com/p/b8a3598c589e</guid>
            <category><![CDATA[analytics]]></category>
            <category><![CDATA[data]]></category>
            <category><![CDATA[marketing]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[email-marketing]]></category>
            <dc:creator><![CDATA[Brian Sanchez]]></dc:creator>
            <pubDate>Tue, 20 Jun 2017 17:24:50 GMT</pubDate>
            <atom:updated>2017-06-21T17:58:04.984Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Juk98YsasEfNQ-UpdvftrQ.png" /></figure><p>One of the most common reasons that our customers use Parabola is to combine and clean multiple email datasets. It is not uncommon for companies to have multiple CRM’s, survey software, blog based email capture, and more — these different sources make it difficult to find a single source of truth.</p><p>By combining multiple pre-configured recipes, you can quickly and easily create a complex email list cleaning flow that is flexible for future data. Export the final list to an email marketing service with personalization information such as company name and recipient first name.</p><p>Each step of this tutorial is <a href="https://parabola.io/recipes">available as a standalone recipe on our recipe’s page</a>. These can be instantly deployed into a new Parabola project with one click.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vOkYSvPef2ZoIXovQKspbA.png" /><figcaption>Parabola Recipes Directory</figcaption></figure><h4>Recipes Used in This Tutorial</h4><ol><li><a href="https://parabola.io/recipes/joining-data">Joining Data</a></li><li><a href="https://parabola.io/recipes/separating-name-fields">Separating Name Fields</a></li><li><a href="https://parabola.io/recipes/scoring-leads">Scoring Leads</a></li><li><a href="https://parabola.io/recipes/summarize-data">Summarizing Data</a></li><li><a href="https://parabola.io/recipes/automatic-filtering">Automatic Filtering</a></li></ol><h3>Bringing together multiple data sources</h3><p><strong>Problem: </strong>Merging multiple data sets together is one of the most common but also frustrating data tasks. In Excel you may be used to using a series of VLOOKUP or INDEX(MATCH()) functions. If you know SQL, you can use a JOIN.</p><p><strong>Parabola Solution:</strong> You can combine any number of data sources with a couple clicks using the <em>Join Object</em> or the <em>Multiple Join Object</em>. New data connected to the Object will automatically joined.</p><p><strong>View The </strong><a href="https://parabola.io/recipes/joining-data"><strong>Joining Data Recipe</strong></a></p><ol><li>Connect your data to Parabola via CSV, Google Sheets, a database connection, etc</li><li>Use the Join Object to join your data based off of a common attribute, in this case email addresses</li><li>Define the type of join (Left, Inner, Outer)</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/912/1*UAftW5N1JX3-8feXDNUncg.gif" /><figcaption>Joining two data sources with a common attribute</figcaption></figure><h3>Cleaning names to isolate just the first and last name</h3><p><strong>Problem: </strong>Many forms ask for a contact’s full name (rather than first and last). This can help streamline data entry and improve form completion rates. However, it can cause problems when you want to use just a specific part of the name. For example, using merge fields to send custom emails. “Hi John Smith” doesn’t feel as personal as “Hi John”.</p><p><strong>Parabola Solution:</strong> You can extract any part of the a name with with the <em>Name Parser Object</em> and split them into new columns. The Name Parser can even handle prefixes, suffixes, and multi-part names.</p><p><strong>View The </strong><a href="https://parabola.io/recipes/separating-name-fields"><strong>Separating Name Fields Recipe</strong></a></p><ol><li>Select the Name Parser Object and connect data to it</li><li>Choose the name parts to separate into new columns</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/912/1*wy2EnrSHUTHgT8SYoxNT5w.gif" /><figcaption>Parsing first and last names out of a single column</figcaption></figure><h3>Score leads to quickly assess their value</h3><p><strong>Problem: </strong>When sending emails to leads, you may have 10 or more contacts at a given company, but you don’t want to email all of them. To keep the sales process working effectively, you probably only want to email the top few contacts at each company based on lead scoring metrics.</p><p><strong>Parabola Solution: </strong>You can automatically score leads against any criteria using the <em>Scoring Object</em>, such as the title that the contact holds. Quickly aggregate and export high value contacts with this data.</p><p><strong>View The </strong><a href="https://parabola.io/recipes/scoring-leads"><strong>Scoring Leads Recipe</strong></a></p><ol><li>Select the Scoring Object and connect data to it</li><li>Create rules that govern the scoring, such as matching the contents of a column</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/914/1*66IjilpRvu0BAH8yT7NHrQ.gif" /><figcaption>Adding the Scoring Object</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/914/1*v8qquku-1rLmxGWb7ygJnA.gif" /><figcaption>Creating sets of rules to score by</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/914/1*CBMByLo6hA29KTIBI0zvfg.gif" /><figcaption>Applying the Scoring rules and viewing the results</figcaption></figure><h3>Group by an attribute to summarize the data associated with it</h3><p><strong>Problem: </strong>Large tables of data can be difficult to understand at a glance. Rolling them up into summary tables makes them much more understandable. In Excel, you might use something like a pivot table, or in SQL you might use a GROUP BY.</p><p><strong>Parabola Solution:</strong> You can group by any attribute and display useful information such as the average scores for each company by using the <em>Group By Object</em>. This is also useful for quickly aggregating transaction or sales data per region and sales rep.</p><p><strong>View The </strong><a href="https://parabola.io/recipes/summarize-data"><strong>Summarizing Data Recipe</strong></a></p><ol><li>Select the Group By Object and connect the scoring data to it</li><li>Select “Avg”, using the score as the data field and the company as the group by column</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/912/1*jrd5ox2dpL5LtUbvnxZM1Q.gif" /><figcaption>Grouping scoring data by the average per company</figcaption></figure><h3>Filter columns to prepare an export to CSV for upload elsewhere</h3><p><strong>Problem: </strong>Filtering data in Excel is highly manual/time-consuming, and can lead to confusing errors when viewers are able to change their filter settings. Adding new data to the file may also require the filters to be reset.</p><p><strong>Parabola Solution:</strong> You can create a separate branch of your data flow that has only the relevant columns or rows for export by using the <em>Column Filter Object</em> or <em>Row Filter Object</em>. As new data passes through the flow, it is automatically filtered using the existing criteria.</p><p><a href="https://parabola.io/recipes/automatic-filtering"><strong>Automatic Filtering Recipe</strong></a></p><ol><li>Select the Column Filter Object or Row Filter Object and connect your data to it</li><li>Select the columns/rows to keep or those to remove</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/876/1*8yVlL7OeXjkX00Rx31h8dw.gif" /></figure><h3>Exporting your data</h3><p>Connect any data flow to the <em>CSV Export Object</em> to download the data. Alternatively, export the data to Google Sheets.</p><ol><li>Add the CSV Export Object and connect the filtered data to it</li><li>Click Export to CSV</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/912/1*2iF8qL7Y3xAGA6xf_0tVBw.gif" /><figcaption>Adding Export Objects to download the transformed data</figcaption></figure><h3>Become a data superstar</h3><p>Parabola enables anyone with any level of data or technical knowledge fully transform, analyze, and visualize any dataset. Without using spreadsheets or code.</p><p>For more recipes and data solutions, check out our <a href="https://parabola.io/recipes">Recipe Page</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b8a3598c589e" width="1" height="1" alt=""><hr><p><a href="https://medium.com/parabola-labs/join-clean-and-export-your-email-data-without-code-or-spreadsheets-b8a3598c589e">Join, clean, and export your email data</a> was originally published in <a href="https://medium.com/parabola-labs">Parabola.io</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>