> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abconvert.io/llms.txt
> Use this file to discover all available pages before exploring further.

# SKIO Integration

> Connect SKIO Webhooks so checkout tests can select existing SKIO-owned Shopify selling plans and receive subscription lifecycle deliveries.

<Warning>
  **Pre-release.** This guide applies when the Integrations hub is enabled for your ABConvert account. Configure SKIO only for the Shopify store connected to ABConvert.
</Warning>

Use SKIO when a checkout test changes an existing subscription offer. ABConvert reads the Shopify selling plans owned by SKIO. It never creates a plan or changes a recurring price.

## Configure SKIO and ABConvert

<Steps>
  <Step title="Start the SKIO setup in ABConvert">
    In **Integrations**, open **SKIO** and select **Set up SKIO endpoint**. Copy the ABConvert webhook URL. You can return to this page later to copy the same URL again.
  </Step>

  <Step title="Add the endpoint in SKIO">
    In the SKIO dashboard, go to **API & Integrations** → **API Keys** → **Webhooks**. Paste the ABConvert URL and select **Add webhook**. SKIO adds the webhook to its table and shows a token for it.
  </Step>

  <Step title="Save the webhook token in ABConvert">
    Copy the token from the new SKIO webhook row. Return to **SKIO** in ABConvert, paste it into **Webhook token**, then select **Save SKIO webhook token**. Treat the token as a secret.
  </Step>

  <Step title="Select and test lifecycle events">
    In the SKIO **Webhooks** tab, select the subscription and billing events you plan to measure. Use a safe test-store subscription flow, then confirm that ABConvert shows **Event received** and records the expected event time.
  </Step>
</Steps>

<Info>
  **Event received** means a SKIO webhook with the saved token reached ABConvert. It confirms delivery from the configured webhook. It does not by itself confirm that the lifecycle event was attributed to a checkout test.
</Info>

SKIO documents the Webhooks setup and the `skioWebhookToken` field in its [webhook guide](https://help.skio.com/docs/webhooks). If your SKIO account supplies a separate, documented signing secret, add it in **Webhook signing secret**. Do not use an API key or any other token in that field.

## Select a SKIO subscription plan in a test

ABConvert lists Shopify selling plans whose owner is SKIO for the product in your checkout test. Select one of those existing plans for each eligible test group. The provider remains the source of truth for the plan and its price.

This supports offer comparisons such as a monthly plan in Control and an existing prepaid plan in another test group. It does not support direct recurring-price changes.

## Use cases

* **Compare existing subscription offers:** show different SKIO-owned selling plans to eligible checkout-test groups.
* **Measure subscription start quality:** compare subscription-created and activation events after a checkout-test exposure.
* **Investigate renewal behavior:** compare mapped billing and cancellation events after the initial order is attributed to a test group.

## Troubleshooting

<Accordion title="Why does SKIO show Event received instead of Connected?">
  SKIO webhook registration happens in the SKIO dashboard. ABConvert does not validate a SKIO API connection or create the webhook for you. **Event received** shows that the configured webhook delivered a payload with the token you saved. It is a delivery signal, not an attribution result.
</Accordion>

<Accordion title="I do not see Event received after testing">
  Check that the ABConvert URL is saved in the SKIO **Webhooks** tab, that the webhook row has its token copied into ABConvert, and that you selected the event type you triggered. Save the token again if the webhook was replaced in SKIO.
</Accordion>

<Accordion title="Can I use a SKIO API key as the webhook token?">
  No. The webhook token is the value SKIO shows for the specific webhook after you add the ABConvert URL. Keep SKIO API keys separate from webhook credentials.
</Accordion>

<Accordion title="Why is a subscription event not shown in test results?">
  A received lifecycle event must include enough information to join it to an eligible checkout-test order. Confirm the event type and the original order in the test store before relying on the result.
</Accordion>
