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

# How to Create an Operation to Send Recommendations to a Site

To show personalized recommendations on your website — in a widget, a banner, or any custom block — your site needs a way to request them from Maestra Platform. That's what an **operation** does: it exposes a recommendation algorithm as an integration point your front end can call.

This page walks through creating that operation step by step.

## Step 1: Add an operation

Open the campaign where the operation should live and choose **Add → Operation**.

## Step 2: Fill in the operation's main parameters

In the operation editor, set:

* **Name** — a human-readable name for the operation.
* **System name** — keep the auto-generated value or set your own. This is the identifier your front end will reference.
* **For service** — choose **Operation V3**.
* **For integration points** — pick the integration point your site uses.
* Enable the **Operation requires deviceUUID** checkbox. The recommendations engine needs the device identifier to match the customer to their browsing history.

## Step 3: Configure the operation steps

The operation runs as an ordered sequence of steps. For a site-recommendation operation you need two.

### Step 1 — Customer

Choose **Anonymous → Get existing**, with lookup by device. This tells Maestra Platform to find the customer record tied to the current `deviceUUID`, falling back to an anonymous profile if no identified customer exists.

### Step 2 — Recommendations

Choose **Get personal recommendations by algorithm** and pick the algorithm type that fits your placement. If your widget needs extra product fields beyond the defaults (for example, a custom badge or an inventory flag), enable the **Receive additional product fields** option.

## Available recommendation types

When you configure the recommendation step, Maestra Platform groups the available algorithms into three families:

<AccordionGroup>
  <Accordion title="Get personal recommendations">
    Ten algorithm variations that personalize results to the individual customer — including personal recommendations, event-based personal recommendations, popular products in viewed categories, recently viewed products, related products to the last order, similar products to those viewed, and manual category mappings.
  </Accordion>

  <Accordion title="Get popular by category">
    Returns the bestsellers list for a specified category. Use this on category pages, where the placement context tells you which category to show.
  </Accordion>

  <Accordion title="Get recommendations for products">
    Three algorithms that recommend products in relation to a given product or list of products — useful for product detail pages and "frequently bought together" widgets.
  </Accordion>
</AccordionGroup>

## Step 4: Save the operation

Click **Add** to save. Your front end can now call the operation through the integration point you selected, passing the `deviceUUID` and any product or category context the chosen algorithm requires.

<Note>
  The operation runs on every request, so make sure your front end calls it only where it actually needs recommendations — page load for a widget, for example, not on every interaction.
</Note>
