# Visitor

## Get Visitor

### Visitor Name

Get the name of the visitor.

#### Sample Code

```javascript
<script>
   window.acquire = window.acquire || [];
   window.acquire.push(function(app){
      app.userDetails.subscribe(function(){
           alert(app.userDetails().name);
      });
   });
</script>
```

### Visitor Email

Get the email address of the visitor.

#### Sample Code

```javascript
<script>
   window.acquire = window.acquire || [];
   window.acquire.push(function(app){
      app.userDetails.subscribe(function(){
           alert(app.userDetails().email);
      });
   });
</script>
```

### Visitor Phone

Get the phone number of the visitor.

#### Sample Code

```javascript
<script>
   window.acquire = window.acquire || [];
   window.acquire.push(function(app){
      app.userDetails.subscribe(function(){
           alert(app.userDetails().phone);
      });
   });
</script>
```

## Set Visitor

### Set Customer Tracking

Set the visitor’s name, email address, phone number and remark.\
Use the script at right to update visitor details.

#### **Step 1: Embed tracking code**

Copy the sample customer tracking code under `<HEAD>` section of your webpage `before widget code.`

#### **Step 2: Reload Webpage**

Save your code and reload webpage.

{% hint style="info" %}
Make sure you replace inside bracket words with your own code that outputs real user data for the currently logged-in user on each of your pages.

All are optional, you can pass only those value that you wanted and you can remove which details you don't have.
{% endhint %}

A convenience function to set multiple settings at once. Accepts a settings object.

#### **Parameters userDetails key detail:**

{% tabs %}
{% tab title="Attributes" %}

| **Attribute** | **Type**   | **Description**         |
| ------------- | ---------- | ----------------------- |
| `name`        | *`string`* | Visitor’s name          |
| `email`       | *`string`* | Visitor’s email address |
| `phone`       | *`string`* | Visitor’s phone number  |
| `remark`      | *`string`* | Visitor’s remark        |
| {% endtab %}  |            |                         |

{% tab title="Sample Code" %}

```javascript
<script>
   window.acquire=window.acquire||[];
   acquire.push({
                  userDetails:{
                      name:'Visitor',
                      phone:'0000000000',
                      email:'visitor@site.com',
                      remarks:'anything remark to customer track'
                  },
                });
</script>
```

{% endtab %}
{% endtabs %}

### Visitor Page Update

Programmatically update visitor’s web-path.

{% hint style="info" %}
**Note:** Chat triggers set to run “When a visitor has loaded the chat widget” will be fired when the visitor path is changed.
{% endhint %}

{% tabs %}
{% tab title="Attributes" %}

| **Attribute** | **Type**   | **Description** |
| ------------- | ---------- | --------------- |
| `title`       | *`string`* | title of page   |
| `url`         | *`string`* | Url for page    |

| *`Optional - If not specified, the current page’s location and title will be used; if specified, the updated page url and title will be taken from the options object.`* |
| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|                                                                               {% endtab %}                                                                               |

{% tab title="Sample Code" %}
Update visitor’s path with specific page url and title:

```javascript
<script>
    // update visitor's path with specific page url and title
    window.acquire=window.acquire||[];
    acquire.push(function(app){
      app.visitorPageUpdate('example title', 'http://example.com');
    });
</script>
```

{% endtab %}
{% endtabs %}

Update visitor’s path with current page’s location and title:

```javascript
<script>
    // update visitor's path with current page's location and title
    acquireIO.visitorPageUpdate(title, url);
</script>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.acquire.io/master/js-api/js-live-chat-api/visitor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
