> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unifygtm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up the Unify Intent client

> Send product usage and events directly into Unify with the native SDK.

## Installation

There are multiple ways to install the Unify Intent client depending on your
setup. When installing the client into the web application for your product,
using either the JavaScript client or the React client is recommended.

<CardGroup cols={2}>
  <Card title="React library" href="/developers/intent-client/react" icon="react" horizontal>
    Install the client in your React web application for a more native
    integration.
  </Card>

  <Card title="JavaScript library" href="/developers/intent-client/js-client" icon="node-js" horizontal>
    Install the client in your non-React frontend application, such as a Single
    Page App (SPA).
  </Card>
</CardGroup>

<Note>
  You should only use one installation method per website or application. If the
  client is installed twice on the same site, it may not work correctly.
</Note>

## Usage

<Tabs>
  <Tab title="React library" icon="react">
    ### Automatic events

    By default, the React library will not automatically collect any events. You
    can enable automatic event collection when initializing the client. See the
    full [Usage guide](/developers/intent-client/usage-guide) for more details.

    ### Manual events

    You can manually trigger events in specific places in your web application
    by calling the client directly.

    #### Page events

    Page events record a page visit. Typically, the easiest strategy is to
    enable automatic collection of page visits, but you can also call them
    manually.

    ```javascript theme={null}
    // Enable automatic "page" event collection
    unify.startAutoPage();

    // Send a "page" event
    unify.page();
    ```

    #### Custom events

    Custom events record specific actions taken by a visitor, such as button
    clicks or form fills. You can send custom events with arbitrary
    properties anywhere in your React application.

    ```javascript theme={null}
    // Send a basic custom event
    unify.track("See More Button Clicked");

    // Send a custom event with additional properties
    unify.track("Modal Opened", {
      modalName: "Contact Sales Modal"
    });
    ```

    #### Identify events

    Identify events link a visitor to a specific company or person. You can send
    identify events whenever you have information about a visitor, such as their
    name or email address.

    ```javascript theme={null}
    // Send a basic "identify" event
    unify.identify("user@email.com");

    // Send an "identify" event with additional company or person attributes
    unify.identify("first.last@acme.com", {
      person: {
        email: "first.last@acme.com",
        first_name: "First",
        last_name: "Last",
      },
      company: {
        domain: "acme.com",
        name: "Acme Corp.",
      }
    });
    ```
  </Tab>

  <Tab title="JavaScript library" icon="node-js">
    ### Automatic events

    By default, the JavaScript library will not automatically collect any
    events. You can enable automatic event collection when initializing the
    client. See the full [Usage guide](/developers/intent-client/usage-guide)
    for more details.

    ### Manual events

    You can manually trigger events in specific places in your web application
    by calling the client directly.

    #### Page events

    Page events record a page visit. Typically, the easiest strategy is to
    enable automatic collection of page visits, but you can also call them
    manually.

    ```javascript theme={null}
    // Enable automatic "page" event collection
    unify.startAutoPage();

    // Send a "page" event
    unify.page();
    ```

    #### Custom events

    Custom events record specific actions taken by a visitor, such as button
    clicks or form fills. You can send custom events with arbitrary
    properties anywhere in your web application.

    ```javascript theme={null}
    // Send a basic custom event
    unify.track("See More Button Clicked");

    // Send a custom event with additional properties
    unify.track("Modal Opened", {
      modalName: "Contact Sales Modal"
    });
    ```

    #### Identify events

    Identify events link a visitor to a specific company or person. You can send
    identify events whenever you have information about a visitor, such as their
    name or email address.

    ```javascript theme={null}
    // Send a basic "identify" event
    unify.identify("user@email.com");

    // Send an "identify" event with additional company or person attributes
    unify.identify("first.last@acme.com", {
      person: {
        email: "first.last@acme.com",
        first_name: "First",
        last_name: "Last",
      },
      company: {
        domain: "acme.com",
        name: "Acme Corp.",
      }
    });
    ```
  </Tab>
</Tabs>

For complete instructions, see the [Usage guide](/developers/intent-client/usage-guide).
