# AI Assistant

### Introduction

The **AI Assistant** in DataJet is designed to help you generate production-ready **Liquid code** from a simple prompt. Instead of starting from scratch, you can describe what you want to achieve, and the assistant will provide a code template that’s ready to deploy. This accelerates development, saves valuable time, and enables you to build advanced logic with just a few words.

#### What the AI Assistant can do

* **Deep Shopify GraphQL support** – all generated code relies on Shopify’s GraphQL API, ensuring performance and future-proof integration.
* **Full access to DataJet features** – the assistant can leverage everything DataJet offers, including:
  * connecting to FTP servers,
  * making HTTP requests to external APIs,
  * sending emails,
  * reading and writing to DataJet storeage and more
* **Tag-first approach** – wherever possible, it uses **tags instead of filters** (e.g., `{% http %}` instead of an `http` filter, `{% graphql %}` instead of a `graphql` filter). This ensures cleaner and more maintainable code.

#### Current limitations

* **Shopify REST API** – since REST was officially deprecated on **October 1, 2024**, all generated code exclusively uses GraphQL. [Read more](https://shopify.dev/docs/api/admin-rest).
* It does not create logic for Shopify Functions
* It will always use Shopify's most recent API version (currently 2025-10)

***

### Usage

Using the AI Assistant is simple: just **describe your task** in the prompt field, and you’ll get a generated code block tailored to your request. It might take up to 60 seconds to generate output.

{% hint style="info" %}
✨ The model is continuously learning – it’s retrained daily, so you can expect steady improvements and more accurate outputs over time.
{% endhint %}

Here are some examples of prompts that should be handled gracefully by our model:

* Unpublish a product with sku: SKU-123 from sales channel called: "Online Store"
* Iterate over all products in the store. Set metafield for each product: namespace: seo, key: hidden, value: 0, type: number\_integer
* Create an automatic discount that offers $50.00 off on all orders over $200.00
* Add tag to product with sku: TEST-PRODUCT. Tag name: "test-tag"
* Publish all products with tag: release-today to sales channel called: "Online Store".
* Check total quantity of all customer items. If it is more than 100 then return a rate called: Oversized with a price: $100.00, otherwise return Regular rate of price: $10.00\`

***

### Error handling

Sometimes, the generated code might not pass DataJet’s **validation checks** on the first try. When this happens:

* You’ll still receive the generated code.
* Validation errors will be included as **inline comments** for easier debugging.
* You can either adjust the code manually or **submit a refined prompt** for another attempt.

And finally:

{% hint style="warning" %}
The AI is a **booster, not a replacement** — you should review and test generated code.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.datajet-app.com/misc/ai-assitant.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
