contacts.js
Quick Start
Vanilla DOM
<head>
<script src="https://unpkg.com/@voxie/contacts.js@^1.1/dist/contacts.js"></script>
</head>
<body>
<form name="myForm">
<label>
Phone:
<input name="phone" type="tel" />
</label>
<input type="submit" />
</form>
<script>
const form = document.forms.myForm;
form.addEventListener('submit', async (e) => {
e.preventDefault();
const voxie = await Voxie.init({
publicKeyId: '<YOUR_PUBLIC_KEY_ID>',
publicSecret: '<YOUR_PUBLIC_KEY_ID>',
});
const phone = form.phone.value;
voxie.capture(phone);
});
</script>
</body>
React
import { Voxie } from '@voxie/contacts.js';
export const voxie = await Voxie.init({
publicKeyId: '<YOUR_PUBLIC_KEY_ID>',
publicSecret: '<YOUR_PUBLIC_KEY_ID>',
});
const App = () => (
<form
onSubmit={(e) => {
e.preventDefault();
const phone = e.target.phone.value;
voxie.capture(phone);
}}
>
<label>
Phone:
<input name="phone" type="tel" />
</label>
<input type="submit" value="Submit" />
</form>
);
Vue 3
- Create composable file voxie.ts
import { voxie } from '@voxie/contacts.js';
export function useVoxie() = {
return await Voxie.init({
publicKeyId: '<YOUR_PUBLIC_KEY_ID>',
publicSecret: '<YOUR_PUBLIC_KEY_ID>',
});
}
- In component
<template>
<form @submit.prevent="capture($event)">
<label>
Phone:
<input name="phone" type="tel" />
</label>
<input type="submit" value="Submit" />
</form>
</template>
<script>
import { defineComponent } from 'vue';
import { useVoxie as voxie } from './services/voxie';
export default defineComponent({
setup() {
function capture(event) {
voxie.capture(event.target.phone.value);
}
return {
capture,
};
},
});
</script>
Installing via package manager
npm install @voxie/contacts.js
yarn add @voxie/contacts.js
pnpm add @voxie/contacts.js
import { Voxie } from '@voxie/contacts';
const voxie = Voxie.init({
publicKeyId: '<YOUR_PUBLIC_KEY_ID>',
publicSecret: '<YOUR_PUBLIC_KEY_ID>',
});
voxie.capture('+15551231234', {
firstName: 'John',
lastName: 'Doe',
email: 'john.doe@example.com',
timeZone: 'America/Los_Angeles',
tags: ['purchased', 'online'],
customAttributes: {
last_purchase_sku: 'vxe123',
last_product_viewed_sku: 'vxe456',
},
});