<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><language>en</language><title>Blog posts by Renan Maluenda</title> <link>https://world.optimizely.com/blogs/renan-maluenda/</link><description></description><ttl>60</ttl><generator>Optimizely World</generator><item> <title>Using Postman with Optimizely Data Platform (ODP) APIs for a custom demo scenario</title>            <link>https://world.optimizely.com/blogs/renan-maluenda/dates/2022/2/how-to-build-tailored-demos-in-optimizely-data-platform-odp-using-postman/</link>            <description>&lt;p&gt;As a Solution Architect at Optimizely, building custom demos that tell a compelling story to a prospect or customer is just part of my role. But as a passionate Marketing Technologist, I really enjoy helping our audience picture our solutions as part of their own ecosystem, embedded in their day to day processes and helping address some of their pain points.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;With that view in mind, a few weeks ago as I explored what we could do programmatically via the APIs available for Optimizely Data Platform (ODP), I came up with this quick guide on how to use Postman to tailor a bespoke narrative, with custom products and events, for a winning ODP demo session. While this may be applicable only to internal employees and partners with access to a sandbox, if you&#39;re reading this and you&#39;re an Optimizely customer, I hope this helps to spark some ideas in terms of what is possible in ODP via APIs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The steps below assume you have access to an ODP instance. If you&#39;re an Optimizely Partner and would like access, you can submit a request via the &lt;a href=&quot;https://partnercenter.optimizely.com/s/&quot;&gt;Partner Portal&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Preparing your scenario&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Go to your Product Directory (&lt;em&gt;Company &amp;gt; Products &amp;gt; Product Directory&lt;/em&gt;) to choose what products you&#39;d like to taylor for your demo. Note down the Product IDs (example highlighted below) as they will be required later for your POST requests in Postman.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/link/fdcf80534bfe440bb6df26a3bcef70c5.aspx&quot; width=&quot;809&quot; height=&quot;154&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Note: If you&#39;re working in a shared ODP instance, don&amp;rsquo;t edit product titles, IDs, SKUs unnecessarily to avoid breaking any existing reports and segments based on product information. If you need to add new products, you can import a CSV file in &lt;em&gt;Settings &amp;gt; Data Management &amp;gt; Integrations&lt;/em&gt;, or use the same example POST request shown below, with a new and unique product ID).&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/link/c8fad36d7003455cae4bd2e369b9ac95.aspx&quot; width=&quot;804&quot; height=&quot;176&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Go to &lt;em&gt;Customers &amp;gt; Profiles&lt;/em&gt; and pick an example customer profile to be used as part of your scenario, as you will need the email identifier for the API query.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/link/d7513d740ade4c2c8cd3efa2bfbd6a79.aspx&quot; width=&quot;1065&quot; height=&quot;125&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&amp;nbsp;Building your requests in Postman&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Using &lt;a href=&quot;https://www.postman.com/&quot;&gt;Postman&lt;/a&gt;, we will use the &lt;a href=&quot;https://docs.developers.zaius.com/api/rest-api/events&quot;&gt;Events API&lt;/a&gt; to push eCommerce sample events for the selected products and customer profile(s), relevant to your scenario. Create a new HTTP request and ensure it&amp;rsquo;s setup as a POST request with the appropriate API keys in place. (Your API key can be found in ODP under &lt;em&gt;Account Settings &amp;gt; Data Management &amp;gt; APIs&lt;/em&gt;).&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/link/4d86e209f43842c69307f171d2db546b.aspx&quot; width=&quot;1056&quot; height=&quot;344&quot; /&gt;&lt;br /&gt;&lt;br /&gt;The Product API reference can be found &lt;a href=&quot;https://docs.developers.zaius.com/core-concepts/use-cases/ecommerce/products&quot;&gt;here&lt;/a&gt;. In this demo scenario, the customer will browse through a couple of different TVs (&lt;em&gt;&quot;product detail view&quot;&lt;/em&gt;), add one to their shopping cart and finally make a purchase (&quot;convert&quot;) in the following day.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Using the product IDs and customer profile selected earlier, we submit a POST request in Postman with &lt;em&gt;product detail views&lt;/em&gt; and the &lt;em&gt;add to cart&lt;/em&gt; events to that customer profile.&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt;[&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt;  {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;type&quot;: &quot;product&quot;,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;action&quot;: &quot;detail&quot;,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;identifiers&quot;: {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;email&quot;: &quot;renan.maluenda@optimizely.com&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; },&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;data&quot;: {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;ts&quot;: 1642633200, //Optional, timestamp in Epoch format&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;product_id&quot;: &quot;moab_7&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt;  },&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;type&quot;: &quot;product&quot;,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;action&quot;: &quot;detail&quot;,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;identifiers&quot;: {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;email&quot;: &quot;renan.maluenda@optimizely.com&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; },&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;data&quot;: {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;ts&quot;: 1642633800,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;product_id&quot;: &quot;moab_7b&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt;  },&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;type&quot;: &quot;product&quot;,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;action&quot;: &quot;add_to_cart&quot;,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;identifiers&quot;: {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;email&quot;: &quot;renan.maluenda@optimizely.com&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; },&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; &quot;data&quot;: {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;ts&quot;: 1642634100,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;product_id&quot;: &quot;moab_7b&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt; &amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:&amp;#32;&amp;#39;andale&amp;#32;mono&amp;#39;,&amp;#32;monospace;&quot;&gt;]&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;Note the timestamps added for each event. These are optional for product events, however they may be a good idea for a better story narrative. Without them, all events in the request above will be added with the same timestamp when you submit the request.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;You should see an &lt;em&gt;Accepted&lt;/em&gt; request in Postman (status &lt;em&gt;202&lt;/em&gt;). The Product API reference &lt;a href=&quot;https://docs.developers.zaius.com/api/rest-api/products&quot;&gt;here&lt;/a&gt; shows examples of status &lt;em&gt;400&lt;/em&gt; and &lt;em&gt;403&lt;/em&gt;. If you get any errors, check your API keys and &lt;em&gt;Product ID&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;{&lt;br /&gt; &amp;nbsp;&amp;nbsp; &quot;title&quot;: &quot;Accepted&quot;,&lt;br /&gt; &amp;nbsp;&amp;nbsp; &quot;status&quot;: 202,&lt;br /&gt; &amp;nbsp;&amp;nbsp; &quot;timestamp&quot;: &quot;2022-01-20T04:11:54.444Z&quot;&lt;br /&gt;}&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;If you want to take the story further, into an eCommerce conversion, you can add a purchase event and relevant order information into your POST request. Make sure you still have the correct Product ID and email identifier.&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;[&lt;br /&gt;  {&lt;br /&gt; &amp;nbsp;&amp;nbsp; &quot;type&quot;: &quot;order&quot;,&lt;br /&gt; &amp;nbsp;&amp;nbsp; &quot;action&quot;: &quot;purchase&quot;,&lt;br /&gt; &amp;nbsp;&amp;nbsp; &quot;identifiers&quot;: {&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;email&quot;: &quot;renan.maluenda@optimizely.com&quot;&lt;br /&gt; &amp;nbsp;&amp;nbsp; },&lt;br /&gt; &amp;nbsp;&amp;nbsp; &quot;data&quot;: {&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;ts&quot;: 1642648500, //Optional, timestamp in Epoch format&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;order&quot;: {&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;order_id&quot;: &quot;OR4356&quot;, //Make something up and unique here &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;total&quot;: 299.00,&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;items&quot;: [&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;product_id&quot;: &quot;moab_7b&quot;,&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;price&quot;: 299.00,&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;quantity&quot;: 1,&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;discount&quot;: 0.00,&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;subtotal&quot;: 299.00&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt; &amp;nbsp;&amp;nbsp; }&lt;br /&gt;  }&lt;br /&gt;]&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;Check the &lt;em&gt;Order Reference&lt;/em&gt; in the Event API documentation &lt;a href=&quot;https://docs.developers.zaius.com/api/rest-api/orders&quot;&gt;here&lt;/a&gt; for examples on &lt;em&gt;Returns&lt;/em&gt;, &lt;em&gt;Refunds&lt;/em&gt; and &lt;em&gt;Order Cancellation&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Note: It can take up to 10 minutes for these events to show in the UI post data processing, but they should be available for querying immediately via the GraphQL explorer.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;All done! You now have created custom events for your bespoke scenario in ODP.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/link/c3b4b48a7c644768ad914719dfb11359.aspx&quot; width=&quot;1005&quot; height=&quot;580&quot; /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Wrapping Up&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;This was initially a step by step I shared internally with our presales team. But hopefully this walkthrough scenario can help you in building your own demo or test scenarios, no matter if you&#39;re an Optimizely partner getting your hands in ODP for the first time, or a customer exploring our APIs.&lt;/p&gt;
&lt;p&gt;For more on ODP custom event tracking, I highly recommend checking &lt;a href=&quot;https://blog.danisaacs.net/optimizely-data-platform-odp-tracking-and-usage-examples/&quot;&gt;this article&lt;/a&gt; posted by our own Dan Isaacs with very detailed examples for custom tracking in ODP.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- Renan&amp;nbsp;&lt;/p&gt;</description>            <guid>https://world.optimizely.com/blogs/renan-maluenda/dates/2022/2/how-to-build-tailored-demos-in-optimizely-data-platform-odp-using-postman/</guid>            <pubDate>Thu, 24 Feb 2022 02:42:01 GMT</pubDate>           <category>Blog post</category></item></channel>
</rss>