Common use cases
POS Integration Tiers

Enhanced Integration

14min
enhanced integration features in aiq's enhanced integration (fka tier 2), some features are built by the pos, into the pos itself an enhanced integration can contain the following features redeemable discounts/rewards in the pos loyalty signup in the pos loyalty status indicator in the pos ability for aiq to get employees attached to sales for reporting (simply provide aiq with employee in transaction get endpoints) aiq has integrated the pos's api for the waiting room queue pos receipts contains loyalty signup information here is an example of aiq loyalty within dutchie's pos step 1) ability to redeem aiq rewards within your pos this is one of the most crucial pieces to the aiq integration this prevents attack vectors, takes a lot of work out of the hands of the consumer and keeps the staff member in a single platform (your pos) in the above mockup, you can see that we are currently creating a cart for a customer named molly gardner at the very bottom left of the image you will see "available rewards" to show this entire section we call a single endpoint from aiq utilizing the api key + uid of the account curl x post https //lab alpineiq com/api/v2/wallet h 'content type application/json' h 'x apikey some api key here' d '{ "phone" "##########", "email" "email\@gmail com" }' compressed // use param "badges=true" if you would like us to return the customers badges for tier 5 7 integration levels this call is heavy on api though fyi // returns 200 { "data" { "loyaltypoints" 1233, // number of points this contact has "hidepointsinwallet" false, // specifies whether the brand has chosen to hide points from being shown to customer if true the loyaltypoints value will always be 0 most customers use this if they are in a market where points are not allowed per compliance "audiences" \[{"name" "vip", "avatar" "url to badget image here"}], // this only appears if you pass badges=true as a url param given it's a heavy api hit "discounttemplates" \[{ // array of discounts available for this contact this is the main section to utilize! "id" "string", // discount id "posdiscountid" "string", // mapped pos discount id set by the client within the aiq discount builder "avatar" "string", // image url assigned to the discount by the brand "name" "string", // name assigned to the discount "pagetitle" "string", // description about the discount "instoreredemption" bool, // specifies whether the discounts from this template should be applied only in store (ie used for ecomm integrations) it’s also possible that the discount doesn’t have a dollar or % off value… in that case it is an in store manual entry type of promo such as a bogo or exclusive discount like access to exclusive strains "redemptionurl" "string", // an api url that client will need to send a put request to when the discount is redeemed pass param transactionid=123 if you are a pos "pricemin" float, // minimum order value required to use this discount default is 0 0 "pricemax" float, // maximum order value allowed to use this discount default is 0 0 "dollarvalue" float, "percentagevalue" float, "disablestacking" bool, // prevents stacking in (ie blaze/ tymber environments) "pointsdeduction" float // the number of loyalty points that will be deducted as a result of using this discount }] }, "code" 200, "success" true } in the above response, you will see "discounttemplates" this an array of discounts the user has access to at the current time the most important variables are posdiscountid , name , pagetitle , redemptionurl , and pointsdeduction some integrations simply look for dollar or percentage off discounts (mutually exclusive) and they simply apply that to the cart and then call our redemption url to let us know once the checkout has completed however, in recent years its become more powerful for aiq to segment rewards you already have in your pos this allows you to run bogo + product level specific discounts and we simply piggyback that power by segmenting which ones they can get access to at a specific point in time in the above image you will notice 2 discounts available and the total points available to the customer at the top aiq would assume these 2 discounts are already in your point of sale the client would copy+paste their discount id into the aiq discount creation system (duplicating whats in your pos or aiq will sync discounts via a get endpoint either way you do not need to do anything as a developer on the pos side all you need to do is call our endpoint above when the clients cart is being created, filter out our discounttemplates for ones that contain a matching "posdiscountid" to one that you have in your system, then display that as available if it's not returned in our endpoint it means it's not applicable to the user we will not return any discount that is not redeemable at that time for that customer then when they apply the discount and the cart is completed 100%/ paid for, you simply call our put endpoint "redemptionurl" for each of the discounts they redeemed + pass the transaction id as a parameter on the end of the redemptionurl so that our reporting knows what transaction the reward was applied to (extremely important to public entity cfo reporting!) the parameter looks like this "transactionid=123" within the redemption url of each discount step 2) refund points / redemptions depending on your setup, you might want to show rewards before actually calling the redemptionurl on each discount object lets say you push a reward through and finish a transaction, then that customer returns their t shirt a few hours later you might want to return the points this can also be the case for a failed transaction whereby you need to re start the entire pos checkout process and apply rewards again if you have already redeemed them, you can't utilize them again until you refund the previous redemption to do that call the following endpoint do not implement this endpoint as a client this endpoint is only made for pos or ecomm integration partners! step 3) let staff signup customers for loyalty + marketing increasing loyalty messaging signups astronomically increases revenue for operators in order to capture customer signups you need to have a flow to do so compliantly in our above screenshot we put a "signup" button next to the customers name if they aren't a member if they are already a member, you can simply show a "aiq member" tag in replacement of the signup button to signup users please use the following endpoint a member may want messaging but not be loyal (not accrue points) for 99% of use cases, set "loyalty" = true please be aware that you should trust aiq as the source of truth related to optins to marketing for mutual clients aiq sees signup and optin confirmations across several synced integrations at a time (website, 3rd party services, 1st party ecomm, native pos, mobile qr code, mobile, tablet, text to join, etc ) curl x post https //lab alpineiq com/api/v2/loyalty h 'content type application/json' h 'x apikey pearocifwga9mc9mtsbrmuiz60dl0xxcgq9vl4cbboww7kz92akcs4m1xg' d '{ "firstname" "shahzil", "lastname" "a", "mobilephone" "##########", "email" "shahzill\@aiq com", "address" "200 santa monica pier, santa monica, ca 90401", "favoritestore" "store1", "loyalty" true, }' compressed example of in pos signup button + modal the signup form should have email + phone + you can pass us hidden inputs in the background for first/ last name and the store location they are checking out at we will map these store locations in our dashboard whenever we see a new json value come in you should also have consent text the clerk signs off on as pictured above you can use the following consent text or edit to your liking by signing up, i consent to enroll in the member list, understanding that i will receive marketing communications, including, but not limited to, advertisements, through text messages, calls either through an automatic telephone dialing system or artificial or prerecorded voice call, emails, or other outreach channels by doing so, i understand that i am allowing {{clientname}} , and it's technology provider aiq, inc to retain my personal contact details and engagement history for use in personalized marketing communications i understand that i may opt out of text messages at any time by replying "stop" standard messaging and calling rates may apply i affirm that i am of legal age to receive communications related to the services and products being advertised consent is not a condition of purchase step 3 ) qr codes for signup or wallet access on receipts did the staff member miss the signup sop? did the customer call in asking how to get points for their last order? this is why you need to have qr codes generated at the bottom of your receipts you can easily guide the consumer to lock in their points and access their deals on the move via their mobile device in an easily recognizable location here's how easy this part is our url structure for accessing their wallet login doesn't change url to swap uid within if they need to signup = https //lab alpineiq com/joinmembers/{{uid of aiq account}}/ https //lab alpineiq com/joinmembers/{{uid of aiq account}}/ url to swap uid within if they need to access their wallet and they are currently a loyalty member https //lab alpineiq com/wallet/{{uid of aiq account}} https //lab alpineiq com/wallet/{{uid of aiq account}} step 4 ) waiting room queue if you have a waiting room queue api, please provide that api to our engineering team it allows us to power in store personalized experiences based on the machine learning derived recommendations as an example, if 4 of the 5 people in the store are edibles buyers, we will change in store screen menus to list edibles first or have promotional content prioritized for them we also can showcase your live queue in our staff app that has amazingly detailed information for them to assist the customer, understand them, and upsell products for higher aov's