# Salla → n8n — Connecting a Workflow

How to guide a merchant from a finished n8n workflow to a working connection in the merchant panel.

Panel: **`https://merchant.n8ndesigner.com`** → **Webhooks** (endpoints) and **Webhooks → Routes** (routing rules).

---

## Before you begin — install the Salla nodes

Install the n8n Designer Salla community-node package in the n8n instance where the workflow will run.

**Package name:**

```text
n8n-nodes-n8ndesigner-salla-n8nai
```

### Install it from the n8n interface

1. Sign in to n8n as the instance **Owner** or an **Admin**.
2. Open **Settings → Community Nodes**.
3. Select **Install**.
4. In **Enter npm package name**, paste `n8n-nodes-n8ndesigner-salla-n8nai` exactly as shown.
5. Accept the community-node installation notice.
6. Select **Install** and wait for the installation to finish.
7. Open or create a workflow, select **Add first step** or **+**, then search for **Salla**. The Salla action and trigger nodes should now appear in the node list.

The package only needs to be installed once per n8n instance. If **Community Nodes** is not visible, ask the instance owner or administrator to install it.

---

## The two things you need

Connecting a workflow always comes down to two values, and **they come from two different places**:

| Value | Where it comes from |
|---|---|
| The **URL** | The Salla Trigger node's webhook URL |
| The **event name** | The **Trigger On** field inside that same node |

**The event name is not in the URL.** Every Salla Trigger ends in `/salla`, whatever event it listens for. So you must ask the merchant which event they selected — or read `eventName` if they paste the workflow JSON. Never guess it, and never try to derive it from the URL.

The list of available events is in the merchant's own n8n dropdown and in the panel's rule form. They pick from there.

---

## How to guide the merchant

1. Ask them to open the workflow and click the **Salla Trigger** node.
2. Ask two things: the **production URL**, and the event shown in **Trigger On**.
3. Split the URL into the host and everything after it.
4. Panel → **Webhooks → Add** → the host as **Base URL**, the rest as **Webhook path**.
5. Panel → **Routes → Add** → the event name, pointing at the endpoint just created.
6. Press **Send test event**, then open the **Webhooks log** to confirm.

### Check the URL is the production one

n8n shows two URLs. Only one works permanently:

| URL | Works |
|---|---|
| `.../webhook-test/...` | Only while the editor is open with "Listen for test event" running |
| `.../webhook/...` | Always, once the workflow is **active** |

If the merchant sends a URL containing **`webhook-test`**, tell them to activate the workflow and use the production URL instead. It is the same URL with `webhook-test` replaced by `webhook`.

---

## Worked example

The merchant has a workflow that listens for new brands. They send you:

```
https://n8n.n8ndesigner.com/webhook/a1b2c3d4-0000-0000-0000-000000000000/salla
```

and tell you the trigger is set to `brand.created`.

Break it down:

| Field | Value |
|---|---|
| Base URL | `https://n8n.n8ndesigner.com` |
| Webhook path | `/webhook/a1b2c3d4-0000-0000-0000-000000000000/salla` |
| Routing rule | `brand.created` |

The long code in the middle is the trigger node's own webhook ID. Every workflow has a different one, which is what keeps endpoints apart — the trailing `/salla` is the same for all of them.

### What you tell them

> Your workflow listens for `brand.created`. Let's connect it.
>
> **1 — Add the endpoint.** In the panel, open **Webhooks** and click Add:
> - Name: `New brands`
> - Base URL: `https://n8n.n8ndesigner.com`
> - Webhook path: `/webhook/a1b2c3d4-0000-0000-0000-000000000000/salla`
>
> Save it.
>
> **2 — Add the routing rule.** Go to **Webhooks → Routes**, click Add, choose `brand.created`, and select the endpoint you just created.
>
> **3 — Test it.** Back on the Webhooks page, press **Send test event**, then open the **Webhooks log** and confirm it shows as delivered. Then create a real brand in your store to check the whole flow.

Repeat for every trigger the merchant builds. One trigger = one endpoint = one rule.

---

## Things to watch

- **The trigger is strict.** A trigger set to `brand.created` discards every other event, even though the URL would accept it. The rule and the trigger must name the same event.
- **Two workflows never share an endpoint.** Different webhook IDs mean different paths, so each one is registered separately.
- **The base URL must start with `https://`.**
- **The workflow must be active**, otherwise the production URL rejects everything.
- **The panel offers wildcard rules.** Only use one when the endpoint is a plain n8n **Webhook** node built to handle several events. Pointing a wildcard at a Salla Trigger means most events arrive and get discarded.
- **More specific always wins.** An exact rule beats a wildcard, a longer wildcard beats a shorter one, and any rule beats the default endpoint. If several rules match at the same level, the event goes to all of them.

---

## When it does not work

| Symptom | Cause |
|---|---|
| Worked at first, then stopped | A `webhook-test` URL was registered. Activate the workflow and switch the path to `/webhook/...` |
| Log says delivered, workflow never ran | The trigger's event differs from the rule's event — compare them character by character |
| Log says received, not delivered | No rule matched, and no default endpoint exists |
| Nothing arrives at all | Workflow inactive, or the path was typed by hand instead of copied |
| The wrong workflow received it | A more specific rule won |
| Delivery failed | n8n errored, was unreachable, or took over 8 seconds. Retries happen automatically |
