Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3583d90
first batch added
julitafalcondusza Apr 3, 2026
6be8b25
content added
julitafalcondusza Apr 3, 2026
0e888f8
recommendations twig page added
julitafalcondusza Apr 3, 2026
f99ef95
updates
julitafalcondusza Apr 3, 2026
2e6f571
content moved, structure updated
julitafalcondusza Apr 3, 2026
9307035
guide added
julitafalcondusza Apr 7, 2026
0930200
guide content
julitafalcondusza Apr 7, 2026
5c30896
fixes, content moved
julitafalcondusza Apr 7, 2026
ae73918
fixes after review
julitafalcondusza Apr 7, 2026
5fab98d
Raptor integration - feature branch: fix links (#3123)
adriendupuis Apr 8, 2026
0493195
new batch of fixes
julitafalcondusza Apr 8, 2026
701594d
updates
julitafalcondusza Apr 8, 2026
6aa1709
new blocks added
julitafalcondusza Apr 9, 2026
3fe76fa
name fix
julitafalcondusza Apr 9, 2026
4a4de00
fix
julitafalcondusza Apr 9, 2026
3c252cb
new page added to cards on raptor_connector landing page
julitafalcondusza Apr 9, 2026
916b1b3
fixes - first batch
julitafalcondusza Apr 10, 2026
42f564e
new fixes
julitafalcondusza Apr 10, 2026
9417292
PHP & JS CS Fixes
julitafalcondusza Apr 10, 2026
745d3ff
new fixes
julitafalcondusza Apr 10, 2026
1f7bb23
block names fixed
julitafalcondusza Apr 10, 2026
5d231e3
code fixed
julitafalcondusza Apr 10, 2026
28025cc
code fixed
julitafalcondusza Apr 10, 2026
fba3463
links fixed
julitafalcondusza Apr 10, 2026
1f400e1
card fixed
julitafalcondusza Apr 10, 2026
3ca94b5
IBX-11571: Rendering recommendations outside of Page Builder document…
julitafalcondusza Apr 10, 2026
771e1e0
php fix
julitafalcondusza Apr 10, 2026
e44ed16
composer.json fix - connector-raptor added
julitafalcondusza Apr 10, 2026
e4450f2
Raptor integration - feature branch: Fix PHP (#3130)
adriendupuis Apr 13, 2026
9fb1061
language fixes
julitafalcondusza Apr 13, 2026
ce553c5
Raptor integration: Rework PHP (#3131)
adriendupuis Apr 13, 2026
b0b4c9b
server description updated
julitafalcondusza Apr 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions code_samples/recommendations/EventData.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<php>
use Ibexa\Contracts\ConnectorRaptor\Tracking\Event\VisitEventData;

$eventData = new VisitEventData(
productId: $product->getCode(),
productName: $product->getName(),
categoryPath: '25#Electronics;26#Smartphones', // Build manually
currency: 'USD',
itemPrice: '999.99'
);

$this->trackingDispatcher->dispatch($eventData);
</php>
22 changes: 22 additions & 0 deletions code_samples/recommendations/EventMapper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<php>
use Ibexa\Contracts\ConnectorRaptor\Tracking\EventMapperInterface;
use Ibexa\Contracts\ConnectorRaptor\Tracking\ServerSideTrackingDispatcherInterface;
use Ibexa\Contracts\ConnectorRaptor\Tracking\EventType;
Comment thread
julitafalcondusza marked this conversation as resolved.

class MyCustomService
{
public function __construct(
private readonly EventMapperInterface $eventMapper,
private ServerSideTrackingDispatcherInterface $trackingDispatcher,
) {}

public function trackProductView(ProductInterface $product, string $url): void
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
{
// Map product to VisitEventData automatically
$eventData = $this->eventMapper->map(EventType::VISIT, $product);

// Send tracking event
$this->trackingDispatcher->dispatch($eventData);
}
}
</php>
39 changes: 39 additions & 0 deletions code_samples/recommendations/EventSubscriber.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<php>
use Ibexa\Contracts\ConnectorRaptor\Tracking\EventMapperInterface;
use Ibexa\Contracts\ConnectorRaptor\Tracking\ServerSideTrackingDispatcherInterface;
use Ibexa\Contracts\ConnectorRaptor\Tracking\EventType;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;

class ProductViewTrackingSubscriber implements EventSubscriberInterface
{
public function __construct(
private readonly EventMapperInterface $eventMapper,
private ServerSideTrackingDispatcherInterface $trackingDispatcher,
) {}

public static function getSubscribedEvents(): array
{
return [KernelEvents::RESPONSE => ['onResponse', -10]];
}

public function onResponse(ResponseEvent $event): void
{
if (!$event->isMainRequest()) {
return;
}

$request = $event->getRequest();

// Example: track only if request has specific attribute
$product = $request->attributes->get('product');
if (!$product) {
return;
}

$eventData = $this->eventMapper->map(EventType::VISIT, $product);
$this->trackingDispatcher->dispatch($eventData);
}
}
</php>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
ibexa:
system:
<scope>:
connector_raptor:
enabled: true
customer_id: ~ # Required
tracking_type: client # One of: "client" or "server"

# Raptor Recommendations API key
recommendations_api_key: ~ # Required

# Raptor Recommendations API URL, optional, set by default
recommendations_api_url: '%ibexa.connector.raptor.recommendations.api_url%'
ibexa_connector_raptor:
# When enabled, tracking exceptions are thrown instead of being silently handled
strict_exceptions: true
31 changes: 31 additions & 0 deletions code_samples/recommendations/custom_integration.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
``` html
<!-- Cookie Consent by TermsFeed https://www.TermsFeed.com -->
<script type="text/javascript" src="https://www.termsfeed.com/public/cookie-consent/4.2.0/cookie-consent.js" charset="UTF-8"></script>
<script type="text/javascript" charset="UTF-8">
document.addEventListener('DOMContentLoaded', function () {
cookieconsent.run({
"notice_banner_type": "simple",
"consent_type": "implied",
"palette": "dark",
"language": "en",
"page_load_consent_levels": ["strictly-necessary"],
"notice_banner_reject_button_hide": false,
"preferences_center_close_button_hide": false,
"page_refresh_confirmation_buttons": false,
"website_name": "Ibexa Storefront",
"callbacks": {
"scripts_specific_loaded": (level) => {
switch(level) {

Check warning on line 18 in code_samples/recommendations/custom_integration.html

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Replace this "switch" statement by "if" statements to increase readability.

See more on https://sonarcloud.io/project/issues?id=ezsystems_developer-documentation&issues=AZ1TbtU5NywzTGnSeniM&open=AZ1TbtU5NywzTGnSeniM&pullRequest=3121
case 'tracking':
document.dispatchEvent(new CustomEvent('enableTracking'));
break;
}
}
},
"callbacks_force": true
});
});
</script>
<noscript>Free cookie consent management tool by <a href="https://www.termsfeed.com/">TermsFeed</a></noscript>
<!-- End Cookie Consent by TermsFeed https://www.TermsFeed.com -->
```
39 changes: 39 additions & 0 deletions code_samples/recommendations/events/basket_event.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# templates/cart/add_confirmation.html.twig #}
{% extends 'base.html.twig' %}

{% block content %}
<div class="cart-notification">
<p>Product "{{ product.name }}" has been added to your cart!</p>
<p>Quantity: {{ addedQuantity }}</p>
</div>

{# Build basket content string: "SKU:quantity;SKU:quantity" #}
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
{% set basketContent = [] %}
{% for item in basket.items %}
{% set basketContent = basketContent|merge([item.product.code ~ ':' ~ item.quantity]) %}
{% endfor %}

{# Track basket addition #}
{% set basketContext = {
'basketContent': basketContent|join(';'),
'basketId': basket.id,
'quantity': addedQuantity
} %}
Comment thread
julitafalcondusza marked this conversation as resolved.

{{ ibexa_tracking_track_event('basket', product, basketContext) }}

<a href="{{ path('cart_view') }}">View Cart</a>
{% endblock %}
```

Simplified example with Twig filter:

``` html+twig
{# If you have a custom Twig filter to format basket content #}
{% set basketContext = {
'basketContent': basket|format_basket_content, {# Returns "SKU-1:2;SKU-2:1;SKU-3:5" #}
'basketId': basket.id,
'quantity': addedQuantity
} %}

{{ ibexa_tracking_track_event('basket', product, basketContext) }}
13 changes: 13 additions & 0 deletions code_samples/recommendations/events/product_visit_event.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# templates/product/view.html.twig #}
{% extends 'base.html.twig' %}

{% block content %}
<div class="product-details">
<h1>{{ product.name }}</h1>
<p>{{ product.description }}</p>
<div class="price">{{ product.price }}</div>
Comment thread
julitafalcondusza marked this conversation as resolved.
</div>

{# Track product visit #}
{{ ibexa_tracking_track_event('visit', product) }}
{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{% extends '@IbexaConnectorRaptor/themes/standard/ibexa/tracking/script.html.twig' %}
{% block ibexa_tracking_script %}
console.log('My custom tracking script, but relying on loadTracking function.');
{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<script type="text/javascript">
if (myCustomConsentIsGiven) {
{{ include('@ibexadesign/ibexa/tracking/script.js.twig', {'customer_id': customer_id}) }}
}
</script>
Comment thread
julitafalcondusza marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{# templates/pagelayout.html.twig #}
<!DOCTYPE html>
<html>

Check warning on line 3 in code_samples/recommendations/templates/themes/standard/pagelayout.html.twig

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add "lang" and/or "xml:lang" attributes to this "<html>" element

See more on https://sonarcloud.io/project/issues?id=ezsystems_developer-documentation&issues=AZ1TbuvYNywzTGnSeoxc&open=AZ1TbuvYNywzTGnSeoxc&pullRequest=3121
<head>

Check warning on line 4 in code_samples/recommendations/templates/themes/standard/pagelayout.html.twig

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add a <title> tag to this page.

See more on https://sonarcloud.io/project/issues?id=ezsystems_developer-documentation&issues=AZ1TbuvYNywzTGnSeoxd&open=AZ1TbuvYNywzTGnSeoxd&pullRequest=3121
{# ... other head content ... #}

{# Initialize Raptor tracking - must be called before any tracking events #}
{{ ibexa_tracking_script() }}
</head>
<body>
{# ... page content ... #}
</body>
</html>
1 change: 1 addition & 0 deletions docs/product_guides/product_guides.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@ Discover the primary ones with the help of product guides. Condensed content all
"commerce/shopping_list/shopping_list_guide",
"ibexa_cloud/ibexa_cloud_guide",
"cdp/cdp_guide",
"recommendations/raptor_integration/raptor_connector_guide",
], columns=4) =]]
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
description: Step-by-step configuration procedure of the Raptor connector.
month_change: true
---

# Configuration procedure

To configure the Raptor integration, follow a step-by-step procedure that allows you to activate the Raptor connector.
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated

## Install Raptor connector

Check notice on line 10 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L10

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 10, "column": 4}}}, "severity": "INFO"}

Before you can proceed to configuring the integration with Raptor, install the [Raptor](https://www.raptorservices.com/) connector.
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
To do it, run the following command:

``` bash
composer require ibexa/connector-raptor
```
Comment thread
julitafalcondusza marked this conversation as resolved.

## SiteAccess-aware configuration

To configure the Raptor connector, use the `ibexa.system.<scope>.connector_raptor` configuration key in the `config/packages/ibexa_connector_raptor.yaml` file:

``` yaml
[[= include_file('code_samples/recommendations/config/packages/ibexa_connector_raptor.yaml', 1, 14) =]]
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
```

- `enabled` - enables or disables the connector for a given scope, default value: `true`. If set to `false`, no tracking or recommendation requests are executed.

Check notice on line 27 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L27

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 27, "column": 149}}}, "severity": "INFO"}
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
- `customer_id` - an identifier used to authenticate requests to the recommendation engine. You can find this value as "Account number" in [Raptor Control Panel](https://controlpanel.raptorsmartadvisor.com/).
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
- `tracking_type` - defines how user events are sent to the tracking API. Default value: `client`. Possible values:

Check notice on line 29 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L29

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 29, "column": 45}}}, "severity": "INFO"}
- `client` - tracking is executed in the browser using JavaScript snippets generated by [Twig functions](../../templating/twig_function_reference/recommendations_twig_functions.md) and included in templates. This approach may be blocked by ad blockers.

Check notice on line 30 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L30

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 30, "column": 27}}}, "severity": "INFO"}

Check notice on line 30 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L30

[Ibexa.ByUsing] Prefer 'by using' or 'with' to plain 'using'.
Raw output
{"message": "[Ibexa.ByUsing] Prefer 'by using' or 'with' to plain 'using'.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 30, "column": 46}}}, "severity": "INFO"}

Check notice on line 30 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L30

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 30, "column": 231}}}, "severity": "INFO"}
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
- `server` - tracking is handled on the backend, with events sent directly to the tracking API. It's not affected by ad blockers.

Check notice on line 31 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L31

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 31, "column": 27}}}, "severity": "INFO"}
- `recommendations_api_key` - an API key used to authenticate requests to the Recommendations API. This key allows the connector to retrieve personalized recommendations from the recommendation engine. You can find this value as "API key" in [Raptor Control Panel](https://controlpanel.raptorsmartadvisor.com/).
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
- `recommendations_api_url` (optional) - overrides the default Raptor address, do not set unless a custom endpoint is required.

Check notice on line 33 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L33

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 33, "column": 116}}}, "severity": "INFO"}
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated

By default, `tracking_type` is set to `client` as client-side tracking is the standard Raptor mode.
To understand the differences between client and server tracking types, including their advantages and disadvantages, refer to the [Raptor documentation](https://content.raptorservices.com/help-center/client-side-vs.-server-side-tracking).

!!! note

Only one tracking mode can be enabled at a time.
Client-side and server-side tracking cannot be used together.

### Customer ID

Check notice on line 43 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L43

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 43, "column": 5}}}, "severity": "INFO"}

To find the value for the `customer_id` identifier, log in to Raptor Control Panel, and look for "Account number":

A. In the top-left corner, above the account name, you can find the account number for the currently active account.
B. Click the arrow icon in the top-left corner to expand the window. There you can see a list of all your accounts, with their numbers shown in the “Account number” column on the right. This way, if you have multiple accounts, you can locate and copy the number of any of your accounts, not just the active one.

Check warning on line 48 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L48

[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.
Raw output
{"message": "[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 48, "column": 186}}}, "severity": "WARNING"}

Check warning on line 48 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L48

[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.
Raw output
{"message": "[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 48, "column": 187}}}, "severity": "WARNING"}

Check warning on line 48 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L48

[Ibexa.VerySimply] Avoid using 'just'.
Raw output
{"message": "[Ibexa.VerySimply] Avoid using 'just'.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 48, "column": 292}}}, "severity": "WARNING"}

![Account number](account_number.png)

### Recommendations API key

Check notice on line 52 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L52

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 52, "column": 5}}}, "severity": "INFO"}

To find the value for the `recommendations_api_key`, log in to Raptor Control Panel, and look for "API key".
To do it, in the left panel, open the **Recommendations** section, and select **Website**.
Next, click on the Web module you’re interested in.
In the top-right corner, click the three-dot icon and select **API information**.
A new window appears, where you can find the "API key" value.
Click **Show API information** and copy the value.

![API key](api_key.png)

## Global configuration (non-SiteAccess-aware)

The following settings are global and apply to the entire application (they are not scoped per SiteAccess):

- `strict_exceptions` – when enabled, tracking exceptions are thrown instead of being silently handled. Default value: `%kernel.debug%`.

Check notice on line 67 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L67

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 67, "column": 59}}}, "severity": "INFO"}

This value can be overriden in `config/packages/ibexa_connector_raptor.yaml` file, for example:

Check failure on line 69 in docs/recommendations/raptor_integration/connector_installation_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/connector_installation_configuration.md#L69

[Ibexa.Spellcheck] Did you really mean 'overriden'?
Raw output
{"message": "[Ibexa.Spellcheck] Did you really mean 'overriden'?", "location": {"path": "docs/recommendations/raptor_integration/connector_installation_configuration.md", "range": {"start": {"line": 69, "column": 19}}}, "severity": "ERROR"}

``` yaml hl_lines="14-17"
[[= include_file('code_samples/recommendations/config/packages/ibexa_connector_raptor.yaml') =]]
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions docs/recommendations/raptor_integration/raptor_connector.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
description: Step-by-step activation procedure of setting up the Raptor connector.
page_type: landing_page
month_change: true
---

# Raptor connector

The [Raptor](https://www.raptorservices.com/) connector is an add-on that provides a seamless integration between [[= product_name =]] and Raptor recommendation engine.

Its primary goal is to enable editors and managers to deliver personalized experiences across digital channels, which helps increase conversion rates, drive sales, and improve user engagement.

By combining content management capabilities with advanced recommendation features, the connector allows teams to build and manage personalized experiences directly within a single platform.
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated

The connector ensures a smooth and unified integration layer, enabling:

- event tracking through the tracking API
- personalized content delivery through the Recommendations API
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated
- flexible, SiteAccess-aware configuration

Check notice on line 19 in docs/recommendations/raptor_integration/raptor_connector.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/recommendations/raptor_integration/raptor_connector.md#L19

[Ibexa.Lists] Verify list formatting: Full sentences should start with uppercase and end with a period. Sentence fragments should start with lowercase and have no period.
Raw output
{"message": "[Ibexa.Lists] Verify list formatting: Full sentences should start with uppercase and end with a period. Sentence fragments should start with lowercase and have no period.", "location": {"path": "docs/recommendations/raptor_integration/raptor_connector.md", "range": {"start": {"line": 19, "column": 1}}}, "severity": "INFO"}

This approach reduces integration complexity while providing a scalable foundation for personalization use cases across multiple sites and markets.

To configure the integration with Raptor, follow a step-by-step procedure that allows you to activate the Raptor connector.
Activation includes [configuration](connector_installation_configuration.md), adding tracking scripts and events, and using [Page Builder](page_builder_guide.md) blocks.

For more information on tracking, check the Raptor documentation: [Implementing tracking](https://content.raptorservices.com/help-center/data-management#implementing-tracking).
Comment thread
julitafalcondusza marked this conversation as resolved.
Outdated

[[= cards([
"recommendations/raptor_integration/connector_installation_configuration",
"recommendations/raptor_integration/tracking_functions",
"recommendations/raptor_integration/tracking_php_api",
"recommendations/raptor_integration/recommendation_blocks",
"templating/twig_function_reference/recommendations_twig_functions",
], columns=3) =]]
Loading
Loading