> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/id/guide/account/iot-logic/nodes/data-source-node.md).

# Sumber Data

Node Sumber Data adalah titik masuk IoT Logic untuk telemetri perangkat. Node ini menerima data melalui TCP, UDP, HTTP, atau MQTT, mendekodenya, dan meneruskannya ke node hilir. Node ini juga dapat memperkaya yang sudah terhubung

## Ikhtisar teknis dan kemampuan

{% columns %}
{% column %}
**Sumber Data** node adalah titik masuk untuk data telemetri dari perangkat IoT dan platform OEM dalam sistem IoT Logic. node berfungsi sebagai penerjemah universal, menerima data melalui protokol TCP/UDP/HTTP pada antarmuka jaringan dan melalui antrean MQTT, lalu mendekode aliran data masuk sesuai protokol yang dipilih. node mengubah Pesan perangkat menjadi format standar yang dapat diproses lebih lanjut dalam aliran Anda.
{% endcolumn %}

{% column %}

<figure><img src="https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-af4d64e959feca51b9e4010f02f38e78e4ed22c8%2Fiot-logic-data-source-tile.png?alt=media" alt="Data source node in the flow workspace"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Selain menerima telemetri, sebuah **Sumber Data** node juga dapat memperkaya perangkat yang telah Anda tambahkan ke sana. Sistem eksternal, seperti platform telematika terpisah yang secara default tidak mengirim data ke Navixy, mendorong atribut tambahan ke aliran perangkat. Terkadang platform eksternal itu adalah milik produsen perangkat itu sendiri. Alih-alih memigrasikan perangkat ke ingest bawaan Navixy, **Perangkat lunak** tab mempertahankannya tetap terdaftar apa adanya. Tab ini terus memperkaya aliran perangkat dengan data dari platform lain itu, sehingga kedua aliran berjalan paralel. Lihat [Bagaimana data yang dikirim ditangani](#how-pushed-data-is-handled) untuk mekanismenya, dan [Opsi konfigurasi](#configuration-options) untuk menyiapkannya.

### Integrasi arsitektur aliran

<figure><img src="https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-2155447864f99240b12cd2f10618cb92cbff488e%2Fiot-logic-data-source-in-flow.png?alt=media" alt="Data source node included in a flow on workspace"><figcaption></figcaption></figure>

**node Sumber Data** berfungsi sebagai titik masuk data dalam aliran IoT Logic. Satu aliran dapat berisi beberapa node sumber, masing-masing dengan konfigurasi independen. Arsitektur ini memungkinkan:

* Akuisisi data awal dari berbagai jenis perangkat dan format protokol
* Transformasi data terstandar dari berbagai produsen ke format terpadu
* Jalur pemrosesan paralel dengan menghubungkan satu Sumber Data ke beberapa node hilir
* Pemfilteran perangkat selektif untuk hanya menyertakan Sumber Data yang relevan dalam aliran Anda
* Pengayaan aliran untuk Perangkat terhubung yang sudah ada, menggunakan atribut yang dikirim dari sistem eksternal melalui HTTP

### Kemampuan node

Blok **node Sumber Data** sendiri menawarkan:

* **Keragaman protokol**: Mendukung berbagai produsen perangkat, termasuk Teltonika, Queclink, Suntech, Jimi, dan lainnya, melalui parser dan decoder bawaan Navixy
* **Fleksibilitas transport**: Mendukung protokol TCP, UDP, HTTP, dan koneksi broker MQTT
* **Transformasi data terpadu**: Mengonversi Pesan khusus perangkat ke format standar untuk pemrosesan yang konsisten
* **Pemfilteran perangkat**: Menyediakan kemampuan pemfilteran untuk memilih model atau protokol tertentu
* **Pemrosesan real-time**: Menangani aliran data telemetri masuk secara real-time untuk pemrosesan segera
* **Pengayaan push HTTP**: Menggabungkan atribut yang dikirim dari sistem eksternal ke aliran perangkat yang sudah dipilih di node ini. HTTP adalah satu-satunya jenis push yang didukung saat ini, dengan arsitektur yang dirancang untuk lebih banyak lagi di masa mendatang

## Opsi konfigurasi

{% columns %}
{% column width="58.333333333333336%" valign="middle" %}
Mengonfigurasi sebuah **Sumber Data** node menentukan perangkat mana yang mengirim data ke aliran Anda dan, secara opsional, bagaimana sistem eksternal dapat memperkaya perangkat tersebut dengan data yang dikirim.

Dialog konfigurasi diatur ke dalam dua tab:

* **Perangkat**: memilih perangkat mana yang mengirim telemetri ke aliran. Wajib, dan bekerja persis seperti sebelumnya.
* **Perangkat lunak**: mengonfigurasi pengayaan push HTTP untuk perangkat yang Anda pilih di tab Perangkat. Opsional, dan bergantung pada pilihan tersebut.
  {% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-3ee99992528681bd753f09ca94f203bd655000c1%2FData_source_node_edit%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
Blok **Perangkat lunak** tab bergantung pada **Perangkat** tab. Pemilihnya **Perangkat sumber** pemilih hanya menampilkan perangkat yang sudah dipilih di **Perangkat**, dan tidak menampilkan data yang tersedia sampai Anda memilih setidaknya satu di sana.
{% endhint %}

Mari lihat elemen apa saja yang digunakan node ini dan apa yang dapat Anda konfigurasikan saat bekerja dengannya:

### Langkah konfigurasi

{% stepper %}
{% step %}

#### Tentukan nama node

Masukkan nama deskriptif untuk Sumber Data ini:

* Gunakan nama yang membantu Anda mengidentifikasi produsen, model, atau informasi relevan lainnya.
* Nama ini akan ditampilkan di diagram aliran agar mudah dikenali.
  {% endstep %}

{% step %}

#### Pilih sumber

Dari daftar yang difilter, pilih perangkat yang akan disertakan. Hanya perangkat yang terdaftar di akun pengguna Navixy Anda yang tersedia untuk dipilih. Pilihan ini juga merupakan prasyarat untuk tab opsional **Perangkat lunak** tab, yang hanya dapat memetakan perangkat yang dipilih di sini.
{% endstep %}

{% step %}

#### Simpan konfigurasi node

Klik **Terapkan perubahan** untuk menyelesaikan pembuatan node.
{% endstep %}

{% step %}

#### Konfigurasikan pengayaan push HTTP (opsional)

Beralih ke **Perangkat lunak** tab untuk memperkaya perangkat yang Anda pilih di tab Perangkat dengan data yang dikirim dari sistem eksternal. Langkah ini opsional. Lihat [Mengonfigurasi pengayaan push HTTP](#configuring-http-push-enrichment) untuk pengaturan lengkapnya.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Jika Anda mengubah pengaturan produsen atau model setelah memilih perangkat, Navixy akan memberi tahu Anda jika ada perangkat yang dipilih yang tidak cocok dengan parameter baru, tetapi tidak akan otomatis menghapusnya dari pilihan Anda.
{% endhint %}

### Mengonfigurasi pengayaan push HTTP

Pengayaan push HTTP memungkinkan sistem eksternal menambahkan atribut ke perangkat yang sudah dipilih di node ini **Perangkat** tab, dengan mengirim data ke URL yang dihasilkan. Ini opsional, dan memerlukan setidaknya satu perangkat yang dipilih di bawah [Langkah konfigurasi](#configuration-steps) terlebih dahulu.

Ini berguna ketika sebuah perangkat sudah mengirim laporan ke sistem terpisah yang secara default tidak mengirim data ke Navixy, misalnya platform manajemen baterai yang melacak SoC kendaraan yang sama. Alih-alih memigrasikan perangkat ke ingest bawaan Navixy, Anda dapat membiarkannya tetap terdaftar apa adanya dan meminta platform lain itu mengirim pembacaannya ke sini. Sebuah push dengan `vehicle_id: \"truck_12\"`, `bms_battery_soc: 76`, dan `bms_battery_temp: 34.2` menambahkan `bms_battery_soc` dan `bms_battery_temp` sebagai atribut baru pada perangkat yang dipetakan, bersama telemetri GPS aslinya.

{% stepper %}
{% step %}

#### Atur jenis konektor

Beralih ke **Perangkat lunak** tab lalu atur **Jenis konektor** ke **HTTP**, saat ini satu-satunya opsi.
{% endstep %}

{% step %}

#### Simpan aliran dan salin URL yang dihasilkan

Simpan seluruh aliran, bukan hanya simpul ini. Yang **URL** bidang ini hanya menghasilkan nilai setelah aliran disimpan dengan **Jenis konektor** set. Sampai saat itu, bidang ini menampilkan penampung yang meminta Anda menyimpan aliran. Setelah URL muncul, klik ikon salin di sebelahnya, yang hanya dinonaktifkan saat bidang kosong.
{% endstep %}

{% step %}

#### Autentikasi sistem eksternal

Berikan sistem eksternal sebuah [kunci API Navixy](/docs/user/id/guide/account/api-keys.md), dan konfigurasikan agar mengirim `Authorization: NVX <api_key>` dengan setiap permintaan push, bersama dengan URL. Push tanpa header ini akan gagal, sehingga baik URL maupun header diperlukan sebelum data dapat diterima.
{% endstep %}

{% step %}

#### Tentukan kunci utama dan pemetaan

Masukkan sebuah **Kunci utama**: nama bidang yang digunakan sistem eksternal untuk mengidentifikasi perangkat mana yang menjadi milik catatan yang dikirim. Bidang ini menerima hingga 64 karakter, hanya huruf, digit, dan garis bawah.

Tambahkan satu **Pemetaan** baris per perangkat untuk diperkaya. Untuk setiap baris, pilih **Perangkat sumber**, dibatasi pada perangkat yang sudah dipilih di Perangkat, dan masukkan **Nilai kunci** yang mengidentifikasi perangkat tersebut dalam push masuk. Bidang ini menyimpan hingga 255 karakter, tetapi endpoint push itu sendiri hanya menerima hingga 100 karakter per bidang, jadi dalam praktiknya pertahankan nilai jauh di bawah 100 karakter.

{% hint style="warning" %}
Baik Kunci utama maupun Nilai kunci hanya menerima huruf, digit, dan garis bawah; tidak ada tanda hubung atau tanda baca lainnya. Validasi bidang umum pada endpoint push lebih permisif dan menerima tanda hubung di bidang apa pun tanpa menimbulkan kesalahan, tetapi nilai yang mengandung tanda hubung tidak akan pernah cocok dengan Nilai kunci yang tersimpan, sehingga push yang menggunakannya dibuang secara diam-diam, persis seolah-olah nilainya tidak cocok. Jika pengenal sistem eksternal Anda menggunakan tanda hubung (misalnya `truck-12`), terjemahkan menjadi, misalnya,  `truck_12`, sebelum mendorong.
{% endhint %}
{% endstep %}

{% step %}

#### Terapkan dan simpan

Klik **Terapkan perubahan**, lalu simpan aliran lagi jika Anda mengonfigurasi tab Software setelah penyimpanan awal.
{% endstep %}
{% endstepper %}

### Rincian pemrosesan data

**node Sumber Data** mewarisi semua parser dan dekoder dari Navixy, sehingga memberikan kompatibilitas dengan berbagai perangkat IoT. Saat data tiba di node ini, data tersebut melalui proses berikut:

1. Aliran data masuk diterima melalui protokol transportasi yang ditentukan
2. Data diteruskan ke dekoder protokol yang sesuai berdasarkan konfigurasi Anda
3. Pesan perangkat diubah menjadi format standar yang dapat diproses oleh IoT Logic
4. Data terpadu diteruskan ke node berikutnya dalam aliran Anda

Proses standardisasi ini memungkinkan Anda membangun alur pemrosesan yang konsisten terlepas dari format data asli dari berbagai produsen perangkat.

### Bagaimana data yang dikirim ditangani

Navixy mencocokkan setiap push masuk berdasarkan nilai kunci primernya terhadap yang dikonfigurasi pada node **Pemetaan**, lalu menggabungkan bidang-bidang yang tersisa ke dalam aliran data perangkat yang dipetakan sebagai atribut: atribut baru jika nama bidangnya baru, atau ditulis ke riwayat atribut tersebut yang sudah ada jika namanya cocok dengan yang sudah ada, baik yang dilaporkan secara native oleh perangkat maupun dikirim oleh konektor aliran lain. Bidang-bidang tersebut tidak memengaruhi lokasi atau telemetri lainnya. Bidang yang disebutkan dalam **Kunci utama**, bersama dengan `aliran_id` dan `node_id`, digunakan untuk perutean dan tidak pernah menjadi atribut itu sendiri. Sebuah permintaan dapat berakhir dalam salah satu dari tiga status:

| Hasil                                                  | Respons HTTP          | Data digabungkan?                                                                                                                                      |
| ------------------------------------------------------ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Nilai kunci primer cocok dengan pemetaan               | 200, `berhasil: true` | Ya. Kolom lainnya digabungkan sebagai atribut; atribut baru jika namanya baru, atau riwayat yang sudah ada jika cocok dengan nama yang telah digunakan |
| Nilai kunci primer tidak cocok dengan pemetaan apa pun | 200, `berhasil: true` | Tidak. Dibuang tanpa pemberitahuan                                                                                                                     |
| Tidak ada atau tidak valid `Authorization` header      | kesalahan 400         | Tidak. Ditolak sebelum Navixy memeriksa kunci primer                                                                                                   |

{% hint style="info" %}
Respons 200 hanya mengonfirmasi bahwa Navixy menerima permintaan, bukan bahwa data telah digabungkan. Nilai kunci primer yang tidak cocok dibuang tanpa pemberitahuan, tanpa kesalahan untuk menandakannya. Jika Anda tidak yakin apakah data yang dikirim cocok, periksa atribut perangkat yang dipetakan di [Penganalisis Data](/docs/user/id/guide/account/iot-logic/data-stream-analyzer.md) alih-alih mengandalkan respons.
{% endhint %}

{% hint style="warning" %}
Nama kolom yang dikirim menggunakan satu namespace yang sama dengan atribut bawaan perangkat, serta dengan nama yang dikirim oleh konektor aliran lain yang memperkaya perangkat yang sama. Jika nama tersebut cocok dengan nama yang sudah digunakan, baik sebagai atribut bawaan perangkat maupun dikirim oleh aliran lain, data yang dikirim akan menimpa riwayat atribut yang ada alih-alih membuat riwayat terpisah.

Sensor, Laporan, dan Aturan peringatan membaca nilai yang digabungkan sebagai pembacaan nyata, sehingga nama yang bertabrakan dapat menghasilkan data palsu di proses hilir. Misalnya, kolom yang dikirim bernama `level_bahan_bakar` yang cocok dengan atribut Bahan bakar bawaan perangkat akan memasukkan pembacaan palsu, sehingga menghasilkan peristiwa penurunan bahan bakar atau pengisian bahan bakar palsu dalam laporan.

Untuk menghindari hal ini, tambahkan prefiks pada nama kolom yang dikirim agar tidak dapat bertabrakan dengan atribut bawaan perangkat atau nama yang dikirim oleh aliran lain, misalnya `bms_battery_soc` tetap `battery_soc`.

Kolom pesan sistem seperti `speed`, `latitude`, `longitude`, `heading`, `satellites`, dan `hdop` tidak dapat ditimpa dengan cara ini. Data yang dikirim hanya membuat atau memperbarui atribut, bukan telemetri tingkat pesan. Kolom yang dikirim menggunakan salah satu nama tersebut tetap muncul dengan nama itu di [Penganalisis Data](/docs/user/id/guide/account/iot-logic/data-stream-analyzer.md), terpisah dari telemetri asli perangkat.
{% endhint %}

Atribut yang digabungkan dicatat sebagai entri pada titik waktu tertentu dalam riwayat atribut perangkat, bukan sebagai nilai saat ini yang tetap. Jika perangkat melaporkan telemetrinya sendiri jauh lebih sering daripada sistem eksternal mengirim pembaruan, paket perangkat sendiri dapat memajukan riwayat atribut melewati nilai yang dikirim dalam hitungan detik, meskipun penggabungan berhasil.

{% hint style="info" %}
Ini merupakan konsekuensi yang diharapkan dari dua aliran data yang berjalan pada kecepatan berbeda, bukan cacat. Rujuk atribut di node hilir sebagai `value('attribute_name', 0, 'valid')` alih-alih menggunakan namanya saja. `'valid'` menelusuri riwayat atribut tersebut hingga pembacaan terakhir yang bukan null, sehingga node hilir mendapatkan nilai yang dikirim tanpa bergantung pada waktu. Lihat [Nilai yang hilang dan perutean null](/docs/user/id/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) untuk mengetahui bagaimana `'valid'` dibandingkan dengan `'all'` dalam kondisi node Logic.
{% endhint %}

Endpoint pengiriman menerima hingga 1 permintaan per detik untuk setiap kunci API, dengan ukuran burst sebesar 1. Sesuaikan laju permintaan sistem eksternal dengan ketentuan tersebut.

## Pertanyaan yang sering diajukan

#### Dapatkah saya menggunakan beberapa node Sumber Data dalam satu aliran?

Ya, Anda dapat menggunakan beberapa **node Sumber Data** dalam satu ruang kerja. Hal ini berguna ketika Anda perlu memproses data dari berbagai jenis perangkat dengan cara yang berbeda atau ingin menggabungkan beberapa aliran data setelah transformasi tertentu.

#### Apa yang terjadi jika perangkat sudah digunakan dalam aliran lain?

Sebuah perangkat dapat menjadi bagian dari beberapa aliran secara bersamaan. Jika Anda menambahkan perangkat yang sudah digunakan dalam aliran lain, kedua aliran memproses datanya secara bersamaan dan hasilnya digabungkan untuk menghindari kehilangan data. Penugasan ke aliran lain bukan merupakan pembatasan. Namun, jika konektor dari dua aliran mengirim nama atribut yang sama ke perangkat tersebut, keduanya tidak akan digabungkan tanpa dampak. Riwayat dari satu pengiriman akan menimpa riwayat pengiriman lainnya. Lihat [Bagaimana data yang dikirim ditangani](#how-pushed-data-is-handled) untuk menghindari nama yang bertabrakan.

#### Apakah semua perangkat Navixy saya secara otomatis tersedia di IoT Logic?

Ya, semua perangkat dari akun pengguna Navixy Anda dapat digunakan dalam pemrosesan IoT Logic. Ini mencakup perangkat GPS, platform OEM, perangkat dan gateway MQTT, serta konektor MQTT/Kafka. Perangkat yang sudah dipilih dalam sebuah **Sumber Data** node juga dapat diperkaya dengan atribut yang dikirim dari sistem eksternal melalui HTTP, melalui **Perangkat lunak** tab.

#### Bagaimana cara mengetahui produsen yang harus dipilih untuk perangkat saya?

Protokol harus sesuai dengan protokol komunikasi yang digunakan oleh produsen perangkat Anda. Sebagian besar perangkat menggunakan protokol yang terkait dengan produsennya (misalnya, perangkat Teltonika menggunakan protokol Teltonika). Periksa dokumentasi perangkat Anda atau konsultasikan dengan penyedia perangkat jika Anda tidak yakin.

#### Dapatkah saya menghubungkan node Sumber Data ke beberapa node hilir?

Ya, Anda dapat menghubungkan sebuah **node Sumber Data** ke beberapa node pemrosesan untuk membuat jalur pemrosesan paralel. Ini memungkinkan Anda menerapkan transformasi yang berbeda pada aliran data yang sama. Berikut contohnya:

<figure><img src="https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-a6ac4747b6916ec883c48e98e40391c555552988%2Fiot-logic-data-source-multi-output.png?alt=media" alt="Example showing the Data source node in context with multiple outbound connections and outputs"><figcaption></figcaption></figure>

#### Dapatkah saya memasukkan data dari sistem yang bukan perangkat Navixy?

Ya, melalui tab **Perangkat lunak** , tetapi hanya untuk memperkaya perangkat yang telah Anda tambahkan di tab **Perangkat** . Ini bukan cara untuk membuat aliran tanpa perangkat di dalamnya.

#### Sistem asal pengiriman data saya melaporkan lebih jarang daripada perangkat saya; apakah data yang dikirim akan hilang?

Tidak, tetapi atribut yang dikirim dapat dengan cepat berhenti menjadi nilai saat ini jika perangkat melaporkan data jauh lebih sering, karena kedua kontributor menggunakan riwayat bergulir yang sama. Rujuk atribut di node hilir sebagai `value('attribute_name', 0, 'valid')` alih-alih nama mentahnya untuk mendapatkan pembacaan aktual terakhir dengan andal, terlepas dari pengaturan waktunya. Ini adalah konsekuensi yang diharapkan dari dua aliran yang berjalan dengan kecepatan berbeda, bukan cacat. Lihat [Bagaimana data yang dikirim ditangani](#how-pushed-data-is-handled) dan [Nilai yang hilang dan perutean null](/docs/user/id/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) untuk `'valid'` vs `'all'` pembedaan dalam kondisi node Logic.

#### Saya mengirim data, tetapi tidak muncul. Apa yang salah?

Periksa ini secara berurutan:

1. Pastikan permintaan menyertakan header yang valid `Authorization: NVX <api_key>` Header. Header yang hilang atau tidak valid akan menghasilkan kesalahan HTTP 400 secara eksplisit.
2. Pastikan nama bidang yang dikirim cocok dengan pengaturan node **Kunci utama** tersebut secara persis, dan nilainya cocok dengan salah satu yang dikonfigurasi **Pemetaan** persis, hanya huruf, digit, dan garis bawah. Nilai dengan tanda hubung adalah penyebab paling umum: nilai itu lolos dari validasi bawaan endpoint push tanpa error, tetapi tidak akan pernah cocok dengan nilai Key yang tersimpan, sehingga permintaan tetap mengembalikan sukses sementara tidak ada yang digabungkan.
3. Periksa riwayat atribut di Penganalisis Data, bukan hanya nilai saat ini. Perangkat yang melaporkan telemetrinya sendiri sering dapat menggeser nilai hasil gabungan keluar dari slot saat ini dalam hitungan detik, meskipun penggabungan berhasil.

#### Saya mengirim sebuah bidang dan pembacaan perangkat itu sendiri terlihat salah

Nama bidang yang dikirim kemungkinan cocok dengan atribut bawaan yang sudah dilaporkan perangkat, atau yang dikirim oleh konektor aliran lain, dan menimpa riwayatnya alih-alih membuat atribut terpisah. Ganti nama bidang yang dikirim dengan prefiks yang berbeda, lalu periksa riwayat atribut di [Penganalisis Data](/docs/user/id/guide/account/iot-logic/data-stream-analyzer.md) untuk memastikan bahwa nilai yang dikirim dan nilai bawaan tidak lagi tercampur.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/user/id/guide/account/iot-logic/nodes/data-source-node.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
