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

# Get import plan

> How an imported workflow (an n8n or Shopify Flow export) would run as your own automation, step by step:
whether each step runs, only shows what it would write, or is not supported, with the reason, and what a step
needs connected. Nothing runs. Answers `404` for an import made from a description, which has no workflow, and
when running imported workflows is not switched on for your organisation.

Needs the `automations:read` scope.



## OpenAPI

````yaml automations/api/openapi.json GET /v1/automations/imports/{importId}/plan
openapi: 3.1.0
info:
  title: Vortex IQ Automations API
  version: 1.0.0
  description: >
    REST API for Vortex IQ Automations. List the templates your organisation can
    use, set automations up on your

    stores, schedule them, run them, and follow every run, from your own tools
    instead of the Automations screens.


    The API is served from `https://automations-api.vortexiq.ai`; the login that
    gives you a token is on

    `https://app.vortexiq.ai`. Every call acts as the person who logged in,
    within their organisation, and every

    answer is JSON. See [Authentication](/automations/api/authentication).
  contact:
    name: Vortex IQ Support
    url: https://www.vortexiq.ai/contact-us
servers:
  - url: https://automations-api.vortexiq.ai
    description: Vortex IQ Automations (production)
security:
  - bearerAuth: []
  - apiCredential: []
tags:
  - name: Authentication
    description: >-
      Exchange your identity and your organisation's API credential for a bearer
      token.
  - name: Templates & stores
    description: What you can set up, and what it can run on.
  - name: Automations
    description: Set automations up, read them and change them.
  - name: Automation controls
    description: Pause, resume, archive and restore.
  - name: Runs
    description: Run an automation now, follow a run, read the history.
  - name: Schedules & calendar
    description: Preview a schedule, list the coming runs, move or skip one.
  - name: Approvals
    description: >-
      The runs waiting for a decision. Deciding happens in the Vortex IQ app
      only.
  - name: Imported workflows
    description: >-
      Bring an n8n or Shopify Flow workflow in, see how it would run, and run it
      as your own automation.
  - name: Status
    description: >-
      Whether Automations are on for your organisation, and how the service is
      doing.
paths:
  /v1/automations/imports/{importId}/plan:
    get:
      tags:
        - Imported workflows
      summary: Get import plan
      description: >-
        How an imported workflow (an n8n or Shopify Flow export) would run as
        your own automation, step by step:

        whether each step runs, only shows what it would write, or is not
        supported, with the reason, and what a step

        needs connected. Nothing runs. Answers `404` for an import made from a
        description, which has no workflow, and

        when running imported workflows is not switched on for your
        organisation.


        Needs the `automations:read` scope.
      operationId: getImportPlan
      parameters:
        - name: importId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/Id'
          description: The import's id.
      responses:
        '200':
          description: The plan.
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                  - contract_version
                properties:
                  success:
                    type: boolean
                    const: true
                  contract_version:
                    $ref: '#/components/schemas/ContractVersion'
                  data:
                    type: object
                    required:
                      - plan
                    properties:
                      plan:
                        $ref: '#/components/schemas/ImportPlan'
              example:
                success: true
                contract_version: 1
                data:
                  plan:
                    name: Daily product summary
                    platform: shopify
                    plan_hash: >-
                      efce57d742d87684551fd55d5348b48159fc83d6b8bd12c75952f98f50651c5a
                    runnable: true
                    refusal: null
                    trigger:
                      kind: schedule
                      node: Daily
                    schedule:
                      cadence: daily
                      run_at: '07:00'
                    trigger_rule: every day at 07:00
                    trigger_timezone: null
                    plan_summary:
                      runs: 3
                      shows: 0
                      unsupported: 0
                      sends: 0
                    steps:
                      - name: Daily
                        type: n8n-nodes-base.scheduleTrigger
                        disposition: run
                        reason: null
                        needs: null
                      - name: Products
                        type: n8n-nodes-base.httpRequest
                        disposition: run
                        reason: null
                        needs:
                          kind: store
                          target: null
        '401':
          $ref: '#/components/responses/Unauthorised'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - bearerAuth:
            - automations:read
        - apiCredential:
            - automations:read
components:
  schemas:
    Id:
      type: string
      description: A public id (a ULID).
      pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
    ContractVersion:
      type: integer
      minimum: 1
      description: >-
        The version of the API this answer follows. It changes only for a
        breaking change.
    ImportPlan:
      type: object
      required:
        - name
        - platform
        - plan_hash
        - runnable
        - trigger
        - schedule
        - plan_summary
        - steps
      properties:
        name:
          type: string
        source:
          type: string
          enum:
            - n8n
            - shopify_flow
          description: 'Where the workflow came from: `n8n` or `shopify_flow`.'
        platform:
          description: >-
            The store the plan reads; null when the workflow names none (then it
            cannot run).
          oneOf:
            - $ref: '#/components/schemas/Platform'
            - type: 'null'
        plan_hash:
          type: string
          description: sha256 of the plan's canonical JSON.
        runnable:
          type: boolean
          description: >-
            False while any step is not supported, or when the whole workflow is
            refused (`refusal`); such an import cannot be set up.
        refusal:
          type:
            - string
            - 'null'
          description: >-
            Why the whole workflow cannot run (n8n's v0 execution order, no
            store named), in plain words.
        trigger:
          type:
            - object
            - 'null'
          required:
            - kind
            - node
          properties:
            kind:
              type: string
              enum:
                - schedule
                - manual
                - event
              description: >-
                How the workflow starts. `event`: when the store sends an event;
                it takes no schedule and cannot be run by hand.
            node:
              type: string
            topic:
              type: string
              description: >-
                Present exactly when `kind` is `event`: the store event it
                starts on, as the platform's webhooks name it, such as
                `inventory_levels/update`.
            words:
              type: string
              description: >-
                Present exactly when `kind` is `event`: that topic in plain
                words, such as "Runs when stock changes".
        schedule:
          description: >-
            The workflow's own schedule, when it can run exactly as written;
            null when it has none, and you choose one.
          oneOf:
            - $ref: '#/components/schemas/Schedule'
            - type: 'null'
        trigger_rule:
          type:
            - string
            - 'null'
          description: >-
            The start's Schedule Trigger rule in words, as n8n runs it, with
            n8n's defaults for what the export leaves out (hour and minute 0,
            Sunday, day 1): "every weekday at 08:00". Never a URL. Null for a
            Manual Trigger, a store event (its words are in `trigger.words`), or
            no start.
        trigger_timezone:
          type:
            - string
            - 'null'
          description: >-
            The workflow's own timezone when the export names a real one
            (`settings.timezone`), as its canonical name (europe/london reads
            Europe/London); null when it names none, says DEFAULT, or names
            something that is not a zone.
        plan_summary:
          type: object
          required:
            - runs
            - shows
            - unsupported
          properties:
            runs:
              type: integer
              minimum: 0
            shows:
              type: integer
              minimum: 0
            unsupported:
              type: integer
              minimum: 0
            sends:
              type: integer
              minimum: 0
              description: Steps that send through a bound connection (disposition `send`).
        steps:
          type: array
          items:
            $ref: '#/components/schemas/ImportPlanStep'
    Platform:
      type: string
      pattern: ^[a-z][a-z0-9_]{1,63}$
      description: >-
        What an automation runs on: a store's platform (`shopify`,
        `bigcommerce`), or an account a template runs on, such as a cloud
        account (`aws`).
      example: shopify
    Schedule:
      type: object
      required:
        - cadence
      properties:
        cadence:
          $ref: '#/components/schemas/Cadence'
        run_at:
          type:
            - string
            - 'null'
          description: >-
            The time of day in the automation's timezone, `HH:MM`. Required for
            once, daily, weekdays, weekly and monthly.
          pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
        day_of_week:
          type:
            - integer
            - 'null'
          minimum: 1
          maximum: 7
          description: >-
            1 is Monday. Required for weekly, and for monthly with
            `week_of_month`.
        day_of_month:
          type:
            - integer
            - 'null'
          minimum: 1
          maximum: 31
          description: >-
            For monthly, unless `week_of_month` is given. 31 runs on the last
            day of a shorter month.
        date:
          type:
            - string
            - 'null'
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          description: >-
            Required for once; the local calendar day it runs on, in the
            automation's timezone. A day and time already passed are refused.
        days:
          type:
            - array
            - 'null'
          items:
            type: integer
            minimum: 1
            maximum: 7
          minItems: 1
          maxItems: 7
          uniqueItems: true
          description: >-
            For weekdays; which days, 1 is Monday. Absent means Monday to
            Friday.
        week_of_month:
          type:
            - integer
            - 'null'
          enum:
            - 1
            - 2
            - 3
            - 4
            - -1
            - null
          description: >-
            For monthly, with `day_of_week`; the first to fourth, or -1 the
            last, such weekday of the month, instead of `day_of_month`.
    ImportPlanStep:
      type: object
      required:
        - name
        - type
        - disposition
        - reason
      properties:
        name:
          type: string
        type:
          type: string
          description: n8n's node type
          such as n8n-nodes-base.httpRequest.: null
        disposition:
          $ref: '#/components/schemas/StepDisposition'
        reason:
          type:
            - string
            - 'null'
          description: 'Plain words: what it would write to, or why it is not supported.'
        needs:
          description: >-
            What the step needs to run; null when it needs nothing or cannot
            run.
          oneOf:
            - $ref: '#/components/schemas/StepNeed'
            - type: 'null'
    ErrorResponse:
      type: object
      required:
        - success
        - message
        - contract_version
      properties:
        success:
          type: boolean
          const: false
        contract_version:
          $ref: '#/components/schemas/ContractVersion'
        message:
          type: string
          description: Plain words saying what happened and what to do.
        code:
          type: string
          description: >-
            A stable code to act on, such as `wrong_state`, `stale_version` or
            `allowance_spent`.
        errors:
          type: object
          description: Field name to messages, for 422.
          additionalProperties:
            type: array
            items:
              type: string
    Cadence:
      type: string
      description: >-
        How often an automation runs. `once` runs on one date and time and then
        has no next run.
      enum:
        - manual
        - once
        - hourly
        - every_6_hours
        - daily
        - weekdays
        - weekly
        - monthly
    StepDisposition:
      type: string
      enum:
        - run
        - show
        - send
        - unsupported
      description: >-
        `run`: runs in Vortex IQ. `send`: writes through the connection bound to
        the step. `unsupported`: cannot run in this version.
    StepNeed:
      type: object
      required:
        - kind
        - target
      properties:
        kind:
          $ref: '#/components/schemas/StepNeedKind'
        target:
          oneOf:
            - $ref: '#/components/schemas/StepTarget'
            - type: 'null'
    StepNeedKind:
      type: string
      enum:
        - store
        - google_sheets
        - teams
      description: >-
        What a step needs to run: `store`, the automation's own store, always
        there; or a Google Sheets or Microsoft Teams connection you bind.
    StepTarget:
      type: object
      additionalProperties: false
      description: >-
        Where a step's connection must lead, as far as the plan can read it from
        the step. A field the step decides only while running is null or absent.
      properties:
        spreadsheet_id:
          type:
            - string
            - 'null'
          description: The spreadsheet a Google Sheets step writes to or reads.
        sheet:
          type:
            - string
            - 'null'
          description: The tab, by its name.
  responses:
    Unauthorised:
      description: >-
        The token is missing, has expired, or is no longer valid (for example,
        the API credential was rotated or disabled). The answer carries
        `WWW-Authenticate`; log in again for a new token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: >-
        Your token is valid but may not do this: it lacks the scope, the
        operation is not part of the Automations API, or Automations are
        switched off for your organisation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: >-
        Not found. Anything that belongs to another organisation is answered the
        same way.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: >-
        Too many calls in a minute from you or your organisation; nothing was
        done. `Retry-After` says how many seconds to wait.
      headers:
        Retry-After:
          schema:
            type: integer
            minimum: 1
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        A bearer token from [Login](/automations/api/login), sent as
        `Authorization: Bearer <token>`. Valid for 60 minutes; it acts as the
        person named at login, within their organisation, and never approves.
        Rotating or disabling the organisation's API credential ends every token
        made with it on its next call. See
        [Authentication](/automations/api/authentication).
    apiCredential:
      type: oauth2
      description: >-
        Your organisation's API credential, exchanged at
        [Login](/automations/api/login) for the bearer token above: an OAuth 2.0
        client-credentials request, with the `username`, `email` and
        `organization_name` of the person the token acts as sent as extra
        fields, as Postman's OAuth 2.0 helper can send them. The token never
        holds `automations:approve`.
      flows:
        clientCredentials:
          tokenUrl: https://app.vortexiq.ai/v2/api/automations/login
          scopes:
            automations:read: >-
              Read automations, templates, stores, runs, the calendar, approvals
              and imports.
            automations:write: >-
              Set automations up, change, pause, resume, archive, restore and
              run them; move and skip coming runs; keep and delete imports.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.