1.1.2 • Published 11 days ago

@voxie/contacts.js v1.1.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
11 days ago

contacts.js

Quick Start

Vanilla DOM

<head>
  <!-- inject contacts library inside head tag-->
  <script src="https://unpkg.com/@voxie/contacts.js@^1.1/dist/contacts.js"></script>
</head>
<body>
  <!-- display your form -->
  <form name="myForm">
    <label>
      Phone:
      <input name="phone" type="tel" />
    </label>
    <input type="submit" />
  </form>

  <script>
    const form = document.forms.myForm;

    // attach event handler
    form.addEventListener('submit', async (e) => {
      e.preventDefault();
      // initialize contacts library
      const voxie = await Voxie.init({
        publicKeyId: '<YOUR_PUBLIC_KEY_ID>',
        publicSecret: '<YOUR_PUBLIC_KEY_ID>',
      });

      const phone = form.phone.value;
      // push contact data
      voxie.capture(phone);
    });
  </script>
</body>

React

import { Voxie } from '@voxie/contacts.js';

// we can export this instance to share with rest of our codebase.
export const voxie = await Voxie.init({
  publicKeyId: '<YOUR_PUBLIC_KEY_ID>',
  publicSecret: '<YOUR_PUBLIC_KEY_ID>',
});

const App = () => (
  // (inlined for brevity) - pass telephone input to voxie capture
  <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

  1. 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>',
  });
}
  1. In component
<template>
  <!-- (inlined for brevity) - pass telephone input to voxie capture -->
  <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
npm install @voxie/contacts.js

# yarn
yarn add @voxie/contacts.js

# pnpm
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 and custom attribute keys must be lowercase
  tags: ['purchased', 'online'],
  customAttributes: {
    last_purchase_sku: 'vxe123',
    last_product_viewed_sku: 'vxe456',
  },
});
1.1.2

11 days ago

1.1.1

1 month ago

1.1.0

1 month ago

1.0.13

2 months ago

1.0.12

4 months ago

1.0.11

5 months ago

1.0.9

8 months ago

1.0.8

8 months ago

1.0.7

8 months ago

1.0.6

9 months ago

1.0.5

10 months ago

1.0.4

11 months ago

1.0.10

6 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

1.0.3

1 year ago

0.2.5

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.6

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago