> For the complete documentation index, see [llms.txt](https://docs.jentis.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.jentis.com/data-activation/connectors/matelso/how-to-configure.md).

# How to configure

### Phase 1 — Control Panel foundations (in Matelso)

1. **Subscriber + number pool**\
   Create/validate subscriber and book a dynamic pool (size matched to traffic).
2. **Register domain**\
   Add the live domain (and aliases, www, staging if needed) in Matelso.
3. **Routing**\
   Set forwarding target, time profiles, IVR if required.
4. **Confirm pool is active**\
   Number(s) assigned and status OK before going live.

### Phase 2 — Search & Replace (in Matelso)

1. Open pool → **Search & Replace**.
2. Add **exact** search texts for every format on the site, e.g.:
   * 0123 456 7890 (display)
   * +491234567890 / tel target
3. Avoid \&nbsp; and mismatched spacing.
4. Optional: channel/pool selectors only if you intentionally limit when numbers swap.

### Phase 3 — Implement Matelso script (in JENTIS)

Add 'Matelso Global Tag' tag template to you JENTIS DCP.\
Loads the Matelso tracking library and enables core Matelso features, including dynamic phone number search and replace.

Keep in mind other Matelso tags are loading the library automatically when needed, however if you have the necessity to load the library manually at a certain time point you can use this tag.

### Phase 4 — Configure Datapoints (in JENTIS)

Add '**Forward Call Data to GA4**' tag in JENTIS DCP.

It loads Matelso library if not yet loaded and pushes all necessary metadata (timestamp, debug code, container etc.) and tracking datapoints as Custom Matelso push that is needed for a **Google Analytics 4 S2S** tag later on.

If your **Google Analytics 4 S2S** tag needs further customization you can push further datapoints with '**Custom Data Properties**' GUI list in the tag view.&#x20;

### Phase 4.5 (optional) — Create your own Custom Matelso Push tag (in JENTIS)

Add '**Custom Push Event**' tag in JENTIS DCP

With this tag you are able to push any kind of datapoints into Matelso as custom object. You could make use of those datapoints in Integrations 2.0 in Matelso.

This tag by default pushes all metadata necessary for the JENTIS system so Integration 2.0 could send correct tracking packet to your JENTIS DCP.\
**Keep in mind:** every custom datapoints needs extra configuration in Matelso Integration 2.0. Explained below.

### Phase 5 — Integrations 2.0 (in Matelso)

This configuration lets you send tracking packets directly into your JENTIS DCP.

1. Go to **Configuration → Integrations 2.0 → Custom**.
2. Name it (e.g. CRM Post Call Push).
3. Trigger: **POST-Call** (after hang-up; duration/outcome available).
4. **Apply Filters** if needed, e.g.:
   * min duration
   * answered only
   * gclid / msclkid present for ads
5. **HTTP method:** POST
6. **POST Body: Copy-paste the following JSON body**

   ```json
   {
     "version": "3",
     "system": {
     "type": "web",
       "timestamp": {{webData.custom.timestamp.attribution(LASTNOTEMPTY).fallBackValue(0)}},
       "navigator-userAgent": "{{webData.custom.userAgent.attribution(LASTNOTEMPTY)}}",
       "initiator": "jts_push_submit",
       "href": "{{webData.custom.window_location_href.attribution(LASTNOTEMPTY)}}",
       "requestType": "sendBeacon",
       "domain": "{{webData.custom.domain.attribution(LASTNOTEMPTY)}}"
     },
     "consent": {{webData.custom.consent.attribution(LASTNOTEMPTY).fallBackValue("")}},
     "configuration": {
       "container": "{{webData.custom.container.attribution(LASTNOTEMPTY)}}",
       "environment": "{{webData.custom.environment.attribution(LASTNOTEMPTY)}}",
       "version": "{{webData.custom.version.attribution(LASTNOTEMPTY)}}",
       "debugcode": "{{webData.custom.debug.attribution(LASTNOTEMPTY)}}"
     },
     "data": {
       "identifier": {
         "user": {
           "id": "{{webData.custom.userId.attribution(LASTNOTEMPTY)}}",
           "action": "update"
         },
         "session": {
           "id": "{{webData.custom.sessionId.attribution(LASTNOTEMPTY)}}",
           "action": "update"
         }
       },
       "variables": {
         "matelso_callDurationSeconds": "{{callData.callDuration.timeSpanFormatter(TotalSeconds)}}",
         "matelso_totalCallDuration": "{{callData.totalCallDuration}}",
         "matelso_totalCallBeginTime": "{{callData.totalCallBeginTime.datetimeFormatter(yyyy-MM-ddTHH:mm:ss)}}",
         "jtspushedcommands": ["post_call"],
         "random_number_per_page-load": "{{webData.custom.random_number_per_page_load.attribution(LASTNOTEMPTY)}}",
         "navigator_language": "{{webData.custom.navigator_language.attribution(LASTNOTEMPTY)}}",
         "window_location_href": "{{webData.custom.window_location_href.attribution(LASTNOTEMPTY)}}",
         "document_title": "{{webData.custom.document_title.attribution(LASTNOTEMPTY)}}",
         "get_vendors_of_ad_storage": {{webData.custom.get_vendors_of_ad_storage.attribution(LASTNOTEMPTY).fallBackValue(false)}},
         "get_vendors_of_analytics_storage": {{webData.custom.get_vendors_of_analytics_storage.attribution(LASTNOTEMPTY).fallBackValue(false)}},
         "get_vendors_of_ad_user_data": {{webData.custom.get_vendors_of_ad_user_data.attribution(LASTNOTEMPTY).fallBackValue(false)}},
         "get_vendors_of_ad_personalization": {{webData.custom.get_vendors_of_ad_personalization.attribution(LASTNOTEMPTY).fallBackValue(false)}},
         "page_load_happened": {{webData.custom.page_load_happened.attribution(LASTNOTEMPTY).fallBackValue(false)}},
         "active_time_on_page": {{webData.custom.active_time_on_page.attribution(LASTNOTEMPTY).fallBackValue(0)}},
         "window_screen_width": {{webData.custom.window_screen_width.attribution(LASTNOTEMPTY).fallBackValue(0)}},
         "window_screen_height": {{webData.custom.window_screen_height.attribution(LASTNOTEMPTY).fallBackValue(0)}},
         "high_resolution_timestamp": {{webData.custom.high_resolution_timestamp.attribution(LASTNOTEMPTY).fallBackValue(0)}},
         "navigator_user_agent_model": "{{webData.custom.navigator_user_agent_model.attribution(LASTNOTEMPTY)}}",
         "navigator_user_agent_wow64": "{{webData.custom.navigator_user_agent_wow64.attribution(LASTNOTEMPTY)}}",
         "navigator_user_agent_mobile": "{{webData.custom.navigator_user_agent_mobile.attribution(LASTNOTEMPTY)}}",
         "navigator_user_agent_bitness": "{{webData.custom.navigator_user_agent_bitness.attribution(LASTNOTEMPTY)}}",
         "navigator_user_agent_platform": "{{webData.custom.navigator_user_agent_platform.attribution(LASTNOTEMPTY)}}",
         "navigator_user_agent_full_version_list": "{{webData.custom.navigator_user_agent_full_version_list.attribution(LASTNOTEMPTY)}}",
         "navigator_user_agent_architecture": "{{webData.custom.navigator_user_agent_architecture.attribution(LASTNOTEMPTY)}}",
         "navigator_user_agent_platform_version": "{{webData.custom.navigator_user_agent_platform_version.attribution(LASTNOTEMPTY)}}"
       }
     }
   }
   ```
7. **HTTP Request Header:** Header: ‘Content-Type’, Content: 'application/json'
8. **Destination**: HTTPS host: Your **JENTIS tracking domain** of the desired Container (“hash.yourdomain”)
9. Use '443’ as port
10. No **Path** or **HTTP Basic Auth** needed
11. **Save** and **Link** configuration with the correct Phone number pool.

### Phase 5.5 (optional) — Retrieve Extra Datapoints in Integrations 2.0&#x20;

Here is a quick guide how to retrieve extra datapoints into the integration:

Add your desired key into the `variables` object and add the value by the magnifier icon (Data Definition Dictionary - DDD)

<div data-with-frame="true"><figure><img src="https://2315305008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy15ncufYr341K5U8q6Of%2Fuploads%2F4Oby43bw1z0rjG6qtsIR%2Fimage.png?alt=media&amp;token=cf1a4faf-0bd7-40c3-a8a3-a669b06aa46f" alt=""><figcaption><p>POST Body of a JENTIS tracking packet</p></figcaption></figure></div>

In DDD select '**Web data**' > '**Custom**' > '**Value**' and insert the '**Custom Data Property Key**' you configured in your "**Custom Data Properties**" GUI list in JENTIS and choose an '**Attribution**' method as well as set a **Fallback value** for safety reasons. Lastly click on **INSERT**.

<div data-with-frame="true"><figure><img src="https://2315305008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy15ncufYr341K5U8q6Of%2Fuploads%2FQqko7ukm27Vn5tTPSaI9%2Fimage.png?alt=media&amp;token=3f570ff7-6dcd-47f2-88be-646932ab4895" alt=""><figcaption><p>DDD explorer in Integrations 2.0</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="https://2315305008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy15ncufYr341K5U8q6Of%2Fuploads%2FEtJEUFBtSt0vBavxpCHJ%2Fimage.png?alt=media&amp;token=035408d0-967d-494a-8a7c-63d054476ee8" alt=""><figcaption><p><strong>Custom Data Properties</strong> in JENTIS </p></figcaption></figure></div>

**How to Use your custom datapoint in JENTIS DCP**

Create a **Server-side variable** with the following code snippet. Change `propertyKey` to the key you specified in Integrations 2.0 POST Payload body. In our example it is called `your_extra_datapoint` .  **Save** it and use the Variable in any placeholders in the DCP.

```js
function variableToUseYourNewDatapoint() {
  let oEvent;
  let propertyKey = "your_extra_datapoint";

  for (let i = 0; i < this.package.documents.length; i++) {
    if (this.package.documents[i].documentType === "event") {
      oEvent = this.package.documents[i];
      break;
    }
  }

  if ( typeof oEvent !== "undefined" && typeof oEvent.property !== "undefined" && typeof oEvent.property[propertyKey] !== "undefined"){
    return oEvent.property[propertyKey];
  }
  return "";
}
```

### Phase 6 — Configure Custom **Google Analytics 4 S2S** event in JENTIS

1. Create your ‘**Custom event**’ tag for **Google Analytics 4 S2S**
2. Configure the custom ‘**Event name**’ in the tag view
3. Add '**Matelso Post Call**' as trigger


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.jentis.com/data-activation/connectors/matelso/how-to-configure.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
