Segment is a platform that captures and stores all first-party customer data regarding your product or service in a centralized place. More specifically, Segment collects events from your interfaces (websites, web apps, etc.), and from that information, helps you create more personalized customer experiences across various channels.
We will plug Lob into our Segment flow by making a custom destination function. Destinations are business tools or apps to which you can send the data you collect in Segment. Depending on which mailpiece form factor you want to send (postcard, letter, etc.), building a destination function that sends it merely involves reading the data and calling Lob’s API. These steps are outlined below.
Getting Started
Make sure you have a Lob account and your API keys. It is highly recommended that you use your (secret) test API key first
Have a creative file ready to use (hosted PDF file or HTML template)
In the sidebar, navigate to “Connections” -> “Catalog,” and then click the Functions tab:
Click the “New Function” button:
Under “Select Function Type,” click “Destination,” and then click “Build”:
Enter your Javascript code in the editor on the left, and test your function on the right; refer to the following section on form factors for details. Click “Configure” when done:
Give the function a name (required), description, and logo, and click “Create Function” to save:
Segment Events by Mail Form Factor
The following are sample functions to send a Lob mailpiece from a given Segment event, organized by mailpiece. Segment provides six different event types that destination functions can operate on:
The following sample code translates Track events into Lob mailpieces by defining an onTrack function. (For other functionalities, just define a similarly named function, e.g., onPage for Page events.)
Postcards
/*** @param{SpecTrack} event The track event* @param{Object.<string, any>} settings Custom settings* @return any*/asyncfunctiononTrack(event, settings) {constbody= { description:'Description of the card,' to: { name:event.properties.name, address_line1:event.properties.address.line1, address_line2:event.properties.address.line2, address_city:event.properties.address.city, address_state:event.properties.address.state, address_zip:event.properties.address.zip }, front:"<html style='padding: 1in; font-size: 50;'>Front side for {{name}}</html>", back:"<html style='padding: 1in; font-size: 20;'>Back side for {{name}}</html>", merge_variables: { name:event.properties.name } };constresponse=awaitfetch('https://api.lob.com/v1/postcards', { method:'POST', headers: { Authorization:`Basic ${btoa(settings.apiKey +':')}`,'Content-Type':'application/json' }, body:JSON.stringify(body) });returnresponse.json();}
Remember to test your mail sent through Segment by using your test API key first. Once you do, plug in your live key, and enjoy sending intelligent, automated mail pieces with Lob and Segment!
Conclusion
Given how useful Segment is for integrating multiple different interfaces for collecting and operating on customer data, this tutorial gives us the ability to add Lob as one of many possible powerful tools for accomplishing data-driven, instantaneous operations on that data. Luckily, plugging Lob into Segment is as easy as making a destination function and using it in your workflows.
Resources
Here are two other resources that might help with crafting your workflow: