saleor-apps-redis_apl/apps/klaviyo/lib/klaviyo.ts

32 lines
810 B
TypeScript
Raw Normal View History

interface EmailServiceProvider {
send: (event: string, recipient: string, context: any) => Promise<Response>;
}
const Klaviyo = (token: string): EmailServiceProvider => ({
send: async (event, recipient, context) => {
const formParams = new URLSearchParams();
formParams.append(
"data",
JSON.stringify({
token,
event,
customer_properties: { $email: recipient },
properties: context,
})
);
console.debug("Klaviyo request: https://a.klaviyo.com/api/track, ", formParams);
const response = await fetch("https://a.klaviyo.com/api/track", {
method: "POST",
body: formParams,
});
console.debug("Klaviyo response: ", response.status, ", ", await response.text());
return response;
},
});
export default Klaviyo;