# ShipStation

### Introduction

Aissist is capable of connecting with ShipStation, enabling it to handle shipment tracking, order management, and delivery notifications. Currently, Aissist can read your ShipStation data, which includes shipment details, tracking information, label data, and delivery events. ShipStation integration provides comprehensive tracking capabilities for orders across multiple carriers and shipping methods.

<details>

<summary>🚀 <strong>Create ShipStation Integration</strong></summary>

### Step 1: Start the Integration

1. Log into your **Aissist** dashboard.
2. From the sidebar, go to **Workspace** → **Integrations**.
3. Click **Add Integration** then choose **ShipStation** from the available integration options.
4. In the setup page, enter:
   * A **name** for your integration.
   * Your **ShipStation API key** for authentication.

👉 You must use a **ShipStation API key** to connect. This provides secure access to your ShipStation account data.

***

### Step 2: Create an API Key in ShipStation

To generate your API key:

1. **Access ShipStation Admin**: Log in to your ShipStation account.
2. **Navigate to Settings**: In the ShipStation dashboard, go to **Settings** → **API Settings**.
3. **Select API Version:** select "V2 API"
4. **Create API Key**: Click **"Generate API Key"**.
5. **Copy API Key**: Copy the generated API key — you'll use it for integration with Aissist.

⚠️ **Important**: Keep your API key secure and never share it publicly. Store it safely as you won't be able to view it again after generation.

📝 **Note**: Refer to the [ShipStation API Keys documentation](https://docs.shipstation.com/authentication#api-keys) for detailed instructions on creating and managing your API key.

***

### Step 3: Complete the Integration in Aissist.io

1. Go back to your **Aissist.io** console and fill in the **API key** for the ShipStation integration.
2. **Set Timeout**: Configure the timeout (10-180 seconds, default: 10).
3. Click **"Test"** to make sure the API key is working correctly.

🔵 **Example Setup:**

* **Name**: Aissistant ShipStation
* **API Key**: `your-shipstation-api-key-here` (your actual key)
* **Timeout**: 30 seconds

</details>

***

<details>

<summary>🧠 Default Smart Actions</summary>

When you set up the ShipStation integration, the following **Smart Action** is automatically included:

#### `trackOrder` Action

* **Purpose**: Track shipment by order ID
* **Default Execution**: Runs during user interaction

***

### 📝 Response Format

The ShipStation integration returns structured data including:

<pre class="language-json"><code class="lang-json">{
  "shipstation": {
    "order_id": "12345",
    "tracking": {
      "tracking_number": "1Z999AA1234567890",
      "tracking_url": "https://tools.usps.com/go/TrackConfirmAction.action?tLabels=1Z999AA1234567890",
<strong>      "status_description": "Delivered",
</strong>      "carrier_status_description": "Your item was delivered in or at the mailbox at 11:40 am on September 25, 2025 in GREENWOOD, SC 29646.",
      "ship_date": "2025-09-23T02:07:00Z",
      "actual_delivery_date": "2025-09-25T15:40:00Z",
      "events": [
        {
          "carrier_occurred_at": "2025-09-25T11:40:00",
          "description": "Delivered, In/At Mailbox",
          "city_locality": "GREENWOOD",
          "state_province": "SC",
          "postal_code": "29646",
          "carrier_status_description": "Delivered, In/At Mailbox"
        },
        {
          "carrier_occurred_at": "2025-09-25T08:40:00",
          "description": "Out for Delivery",
          "city_locality": "GREENWOOD",
          "state_province": "SC",
          "postal_code": "29646",
          "carrier_status_description": "Out for Delivery"
        },
        {
          "carrier_occurred_at": "2025-09-25T08:36:00",
          "description": "Arrived at Post Office",
          "city_locality": "GREENWOOD",
          "state_province": "SC",
          "postal_code": "29649",
          "carrier_status_description": "Arrived at Post Office"
        },
        {
          "carrier_occurred_at": "2025-09-25T02:52:00",
          "description": "Arrived at USPS Facility",
          "city_locality": "GREENWOOD",
          "state_province": "SC",
          "postal_code": "29649",
          "carrier_status_description": "Arrived at USPS Facility"
        }
      ]
    }
  }
}
</code></pre>

</details>

***

<details>

<summary>🛠️ Customizing ShipStation Smart Actions</summary>

#### Creating Custom Actions

1. Go to **Workspace → Action**.
2. Click **"Add Action"** and select the ShipStation integration you previously set up.
3. Choose the `trackOrder` method.
4. Give your action a **name** and **description**.

***

#### Execution Options

* **Run at Session Start**: Automatically track orders when a session begins
* **Run During Interaction**: Track orders based on user queries
* **Both**: Enable both execution modes

***

#### Action Triggers

* **Inbound**: User's input message triggers the action
* **Outbound**: Aissistant's reply triggers the action
* **Both**: Either direction can trigger the action

***

#### Customizable Parameters

**Order ID**

* **Default Description**: Order id (e.g., Shopify/WooCommerce/AdobeCommerce order id)
* **Example Description**: Track order by Shopify order id, format: "SHOPIFY-123456789"

***

#### Response Instructions

Add instructions to guide Aissistant on how to present tracking information:

```
Summarize the tracking status and highlight key events. 
Include the current status, estimated delivery date, and carrier information.
If the package is delayed or has exceptions, explain the situation and suggest next steps.
```

</details>

After setting up the ShipStation integration and actions, you can use the [**Action Debugger**](/integrations/action-debugger.md) to test and verify that everything is working correctly.


---

# 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://doc.aissist.io/integrations/shipstation.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.
