saleor-apps-redis_apl/apps/klaviyo/lib/klaviyo.ts
Lukasz Ostrowski 4865d33d5d
Add Klaviyo (#112)
* Add Klaviyo

* Update schema

* Fix build

* Empty commit to trigger deploy
2023-02-09 10:41:54 +01:00

31 lines
810 B
TypeScript

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;