# Передача UUID через Telegram, Viber та віджет

Короткий огляд способів передачі UUID (або іншого ідентифікатора користувача) в бота з різних каналів.

---

## Порівняльна таблиця

| Канал   | Спосіб передачі      | Доступ у сценарії         | Обмеження                         |
|---------|------------------------|---------------------------|-----------------------------------|
| Віджет  | `params_from_site` або `user_id` | `{{uuid}}` / `{{user_id}}` | —                                 |
| Telegram| Deeplink `?start=`     | `{{messenger_input_param}}`| До 64 символів                    |
| Viber   | Deeplink `context=`    | `{{messenger_input_param}}`| —                                 |

**Примітка:** UUID зазвичай 36 символів (з дефісами) або 32 символи (без). У межах ліміту Telegram.

---

## 1. Віджет

### Варіант A: через `params_from_site`

```javascript
kw('init', {
  bot_id: 1,
  params_from_site: {
    uuid: "550e8400-e29b-41d4-a716-446655440000"
  }
});
```

У сценарії: `{{uuid}}`

### Варіант B: через `user_id` (як chat_id)

```javascript
kw('init', {
  bot_id: 1,
  user_id: "550e8400-e29b-41d4-a716-446655440000"
});
```

- Якщо вказати `user_id`, він використовується як `chat_id` віджету
- UUID зберігається в cookie на 30 днів (якщо не передати — генерується автоматично)

### Зміна UUID під час роботи

```javascript
kw_event('kwsetparamsfromsite', {
  params_from_site: { uuid: "новий-uuid" }
});
```

---

## 2. Telegram

### Deeplink

```
https://t.me/BotUsername?start=550e8400-e29b-41d4-a716-446655440000
```

або без дефісів (32 символи):

```
https://t.me/BotUsername?start=550e8400e29b41d4a716446655440000
```

### Отримання UUID у сценарії

1. Додайте action `get_command` на початку потоку
2. UUID буде в константі `{{messenger_input_param}}`

```javascript
// В action jail або умові
const uuid = j.messenger_input_param || '';
```

### Обмеження

- Максимум **64 символи** у параметрі `start`
- Для підписки на нотифікації потрібно натиснути кнопку «Почати»

---

## 3. Viber

### Deeplink

```
viber://pa?chatURI=URI_вашого_бота&context=550e8400-e29b-41d4-a716-446655440000
```

`chatURI` — URI бота у Viber (наприклад, `mybot`).

Опційно можна передати `text=Start!` — текст у поле вводу. Без `text` посилання все одно запустить діалог.

### Отримання UUID у сценарії

1. Додайте action `get_command`
2. UUID буде в `{{messenger_input_param}}` (як і в Telegram)

---

## Єдиний сценарій для всіх каналів

Щоб отримати UUID незалежно від каналу:

| Канал   | Де взяти UUID                          |
|---------|----------------------------------------|
| Віджет  | `{{uuid}}` з `params_from_site`        |
| Telegram| `{{messenger_input_param}}` після deeplink |
| Viber   | `{{messenger_input_param}}` після deeplink |

У умові або action jail:

```javascript
const uuid = j.uuid || j.messenger_input_param || '';
```

---

## Пов'язані документи

- [Передача параметрів з віджету](/uk/channels/how-to/pass-parameters-from-widget.md)
- [Запуск сценарію через deeplink](/uk/integrations/explanation/deeplink-launch.md)
- [Довідник дій Action Jail](/uk/actionjail/reference/actions-reference.md)
