# Mga Connection

Ini-link ng Connections ang iyong organisasyon sa mga external platform. Karamihan ng providers ay tumatanggap ng real-time webhook
events mula sa iyong mga laro. Iba ang LINE connection — nagpa-publish ito ng streams sa loob ng LINE sa pamamagitan ng LIFF
o MINI App.

Para sa **client-side** analytics at ads SDKs (GA4, Mixpanel, PostHog, Amplitude, GTM, Meta Pixel), tingnan ang
[Analytics Providers](/fil/connections/analytics-providers/) — naka-configure sa ilalim ng
**Connect → Analytics**, hindi bilang webhook connections.

## Mga Uri ng Connection

| Uri | Ano ang ginagawa nito | Providers |
| :--- | :----------- | :-------- |
| **Event webhooks** | Itulak ang play at prize events sa iyong stack | Webhook, Custom, Zapier, Braze, HubSpot, Mailchimp, Salesforce, Segment |
| **Publishing** | Buksan ang streams sa loob ng messaging app | [LINE (LIFF / MINI App)](/fil/connections/line) |
| **Client analytics** | Mag-load ng browser SDKs sa stream pages | [Analytics Providers](/fil/connections/analytics-providers/) |

---

## Mga Suportadong Provider

| Provider       | Paglalarawan                          |
| :------------- | :----------------------------------- |
| **Webhook**    | Anumang HTTP endpoint na may opsyonal na auth |
| **Custom**     | Custom API URL na may opsyonal na API key |
| **Zapier**     | Zapier webhook (kailangan ang HTTPS)      |
| **Braze**      | Braze messaging platform — tingnan ang [Braze Connection](/fil/connections/braze) |
| **HubSpot**    | HubSpot CRM                          |
| **Mailchimp**  | Mailchimp email marketing            |
| **Salesforce** | Salesforce CRM                       |
| **Segment**    | Segment analytics                    |
| **LINE**       | I-publish ang streams sa LINE sa pamamagitan ng LIFF / MINI App — tingnan ang [LINE Connection](/fil/connections/line) |

---

## Paano Gumagana ang Event Webhooks

1. **Gumawa ng connection** sa organization level gamit ang iyong provider credentials
2. **I-link ang connection** sa isa o higit pang streams (campaigns)
3. **Pumili ng trigger events** na nagtatakda kung kailan magfa-fire ang webhook
4. Kapag naganap ang trigger event, nagpapadala ang DailyPlay ng POST request sa iyong endpoint na may event data

:::tip
Para sa LINE setup at permanent links, tingnan ang [LINE Connection](/fil/connections/line). Hindi naka-link ang LINE sa
stream trigger events.
:::

---

## Trigger Events

Ang bawat stream connection ay maaaring i-configure na mag-fire sa isa o higit sa mga event na ito:

| Event              | Nagfa-fire kapag…                        |
| :----------------- | :--------------------------------- |
| `stream_access`    | Binubuksan ng manlalaro ang stream page     |
| `play_start`       | Nagsisimula ang manlalaro ng laro             |
| `play_complete`    | Tinatapos ng manlalaro ang laro           |
| `prize_redemption` | Kino-claim ng manlalaro ang premyo o voucher |

---

## Pag-set Up ng Webhook Connection

### 1. Gumawa ng Connection

1. Pumunta sa **Connections** mula sa main navigation
2. I-click ang **Add Connection**
3. Piliin ang iyong provider (hal. **Webhook**)
4. Ilagay ang kinakailangang credentials:
   - **Webhook / Custom** — Endpoint URL at opsyonal na authorization header o API key
   - **Zapier** — Webhook URL (dapat HTTPS)
   - **Other providers** — API key at anumang provider-specific fields
5. I-save ang connection

### 2. I-link sa Stream

1. Buksan ang stream na gusto mong ikonekta
2. Pumunta sa **Connections** tab
3. Pumili ng available connection mula sa iyong organisasyon
4. Piliin kung aling **trigger events** ang dapat mag-fire ng webhook
5. I-save

---

## Format ng Payload

Kapag naganap ang trigger event, nagpapadala ang DailyPlay ng HTTP POST request sa iyong naka-configure na endpoint. Ang
payload ay JSON at may kasamang context tungkol sa event, ang laro, at ang manlalaro.

### Halimbawa: `play_complete` Event

```json
{
  "event_type": "play_complete",
  "game_id": "163",
  "stream_id": 453,
  "stream_slug": "my-campaign-slug",
  "stream_name": "My Campaign Stream",
  "player_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "session_id": "s9k8j7h6-g5f4-d3c2-b1a0-123456789abc",
  "score": 85,
  "play_duration_seconds": 32,
  "url_params": {
    "user_id": "usr_123",
    "email": "player@example.com",
    "source": "email_campaign"
  },
  "timestamp": "2026-04-09T14:30:00.000Z"
}
```

### Payload Fields

| Field                   | Type   | Paglalarawan                                                         |
| :---------------------- | :----- | :------------------------------------------------------------------ |
| `event_type`            | string | Ang pangalan ng trigger event (hal. `play_complete`)                       |
| `game_id`               | string | Ang ID ng larong nilalaro                                  |
| `stream_id`             | number | Ang ID ng stream (campaign) kung saan kabilang ang laro                 |
| `stream_name`           | string | Ang display name ng stream                                      |
| `player_uuid`           | string | Unique identifier para sa manlalaro                                    |
| `session_id`            | string | Unique identifier para sa play session                              |
| `score`                 | number | Ang score ng manlalaro (para sa `play_complete`)                            |
| `play_duration_seconds` | number | Gaano katagal tinapos ng manlalaro ang laro, sa segundo           |
| `url_params`            | object | Anumang URL query parameters na naipasa noong na-access ng manlalaro ang stream |
| `timestamp`             | string | ISO 8601 timestamp kung kailan naganap ang event                       |

:::tip
Kinukuha ng `url_params` field ang anumang query parameters mula sa stream URL. Kapaki-pakinabang ito para
magpasa ng tracking IDs, user identifiers, o campaign tags mula sa iyong umiiral na systems — halimbawa
`https://app.dailyplay.ai/stream/<org-slug>/my-stream?user_id=usr_123&source=email_campaign`.
:::

---

## Pamamahala ng Connections

- **Edit** — I-update ang credentials o palitan ang pangalan ng connection mula sa Connections page
- **Enable / Disable** — I-toggle ang connection on o off nang hindi ito tinatanggal
- **Remove from stream** — I-unlink ang connection mula sa partikular na stream habang pinapanatiling
  available ang connection para sa ibang streams
- **Delete** — Permanenteng tanggalin ang connection mula sa iyong organisasyon

:::note
Ang organization **owners** at **admins** lang ang maaaring gumawa, mag-edit, o magtanggal ng connections.
:::