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

# Build inbox link

> Build a deep-link URL into the user's /inbox view with the given filters applied.

Use when the user asks to be sent to / shown / opened an inbox view, or when a reply benefits from a clickable link to actionable inbox state ("here are the 3 unread WhatsApp threads — open them: <link>").

Do NOT call this to FETCH messages — use list_inbox_threads or get_inbox_contact_messages for data.

Notes:
- All fields are optional; omitting filters returns the default inbox URL.
- folder defaults to 'received'. Common alternatives: 'unread', 'ai_draft', 'tags'.
- leadId opens a SINGLE contact thread; leadIds filters the LIST view to those contacts. Almost always prefer leadIds.
- Resolve names to numeric IDs first via get_identities / get_campaigns / get_companies / list_inbox_tags when the user gives names.
- Pure URL construction — no DB read, no side effects.

    > **Required scope:** `MESSAGING_READ`
    >
    > **Rate limit:** 100 requests per minute



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json post /v1/inbox/link
openapi: 3.1.0
info:
  title: Enginy API
  version: 1.0.0
  description: Public API for Enginy platform
servers:
  - url: https://openapi.enginy.ai
    description: Configured server
security: []
tags:
  - name: AI Variables
    description: >-
      Manage AI variables and discover the entity fields you can reference in
      prompts and entity requests.
  - name: Inbox
    description: >-
      Inbox endpoints for listing contact threads, reading thread messages,
      managing tags, and sending manual replies.
  - name: Workflows
    description: >-
      Build, validate, publish, run, and inspect advanced (graph) workflows,
      plus the block/condition catalog needed to author a workflow plan.
paths:
  /v1/inbox/link:
    post:
      tags:
        - Inbox
      summary: Build inbox link
      description: >-
        Build a deep-link URL into the user's /inbox view with the given filters
        applied.


        Use when the user asks to be sent to / shown / opened an inbox view, or
        when a reply benefits from a clickable link to actionable inbox state
        ("here are the 3 unread WhatsApp threads — open them: <link>").


        Do NOT call this to FETCH messages — use list_inbox_threads or
        get_inbox_contact_messages for data.


        Notes:

        - All fields are optional; omitting filters returns the default inbox
        URL.

        - folder defaults to 'received'. Common alternatives: 'unread',
        'ai_draft', 'tags'.

        - leadId opens a SINGLE contact thread; leadIds filters the LIST view to
        those contacts. Almost always prefer leadIds.

        - Resolve names to numeric IDs first via get_identities / get_campaigns
        / get_companies / list_inbox_tags when the user gives names.

        - Pure URL construction — no DB read, no side effects.

            > **Required scope:** `MESSAGING_READ`
            >
            > **Rate limit:** 100 requests per minute
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                folder:
                  type: string
                  enum:
                    - received
                    - unread
                    - sent
                    - scheduled
                    - ai_draft
                    - tags
                  description: >-
                    Top-level inbox section. Defaults to 'received'. Use
                    'unread' for new replies, 'ai_draft' for pending AI drafts,
                    'sent', 'scheduled', or 'tags'.
                  example: unread
                tagFolderId:
                  type: integer
                  exclusiveMinimum: 0
                  description: Optional tag-folder ID to scope a tags-section view.
                identityIds:
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
                  minItems: 1
                  description: >-
                    Filter to threads owned by these sender identity IDs. Look
                    up via get_identities if the user gave names.
                leadId:
                  type: integer
                  exclusiveMinimum: 0
                  description: >-
                    Open a SINGLE contact thread in the inbox. Almost always
                    prefer leadIds; use leadId only when the user wants a
                    specific contact thread opened.
                archived:
                  type: boolean
                  description: >-
                    If true, link to the archived inbox instead of the active
                    inbox.
                status:
                  type: array
                  items:
                    type: string
                    enum:
                      - PAUSED
                      - ACTIVE
                      - COMPLETED
                  minItems: 1
                  description: Filter by conversation status. ACTIVE, PAUSED, or COMPLETED.
                tagIds:
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
                  minItems: 1
                  description: >-
                    Filter to threads tagged with these tag IDs. Look up via
                    list_inbox_tags if the user gave tag names.
                includeUntagged:
                  type: boolean
                  description: >-
                    When combined with tagIds (or alone), also include threads
                    with no tag.
                campaignIds:
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
                  minItems: 1
                  description: >-
                    Filter to threads from these campaigns. Look up via
                    get_campaigns if the user gave campaign names.
                channel:
                  type: array
                  items:
                    type: string
                    enum:
                      - LINKEDIN
                      - EMAIL
                      - WHATSAPP
                      - TASK
                  minItems: 1
                  description: >-
                    Filter by message channel. LINKEDIN, EMAIL, WHATSAPP, or
                    TASK.
                companyIds:
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
                  minItems: 1
                  description: >-
                    Filter to threads with contacts at these companies. Look up
                    via get_companies if the user gave company names.
                icpRate:
                  type: array
                  items:
                    type: string
                    enum:
                      - HIGH
                      - MEDIUM
                      - LOW
                      - DISQUALIFIED
                      - MISSING_DATA
                  minItems: 1
                  description: >-
                    Filter by ICP rating. HIGH, MEDIUM, LOW, DISQUALIFIED, or
                    MISSING_DATA.
                dateRange:
                  type: object
                  properties:
                    from:
                      type: string
                      format: date-time
                      description: Inclusive start of the date range, ISO 8601.
                    to:
                      type: string
                      format: date-time
                      description: Inclusive end of the date range, ISO 8601.
                  required:
                    - from
                    - to
                  description: Filter by message date range, inclusive.
                leadIds:
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
                  minItems: 1
                  description: >-
                    Filter the inbox list to these contact (lead) IDs. Use this
                    — not leadId — for filter-style scoping.
              additionalProperties: false
            examples:
              default:
                summary: Unread inbox filtered by channel and tags
                value:
                  folder: unread
                  channel:
                    - LINKEDIN
                    - EMAIL
                  tagIds:
                    - 5
                    - 8
      responses:
        '200':
          description: Inbox link built successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      url:
                        type: string
                        format: uri
                        description: >-
                          Absolute deep-link URL into the user's /inbox view
                          with the given filters.
                    required:
                      - url
                required:
                  - status
                  - message
                  - data
              examples:
                default:
                  summary: Deep link into the inbox view
                  value:
                    status: success
                    message: Inbox link built successfully
                    data:
                      url: >-
                        https://app.enginy.ai/inbox?folder=unread&tagIds=%5B5%2C8%5D&channel=%5B%22LINKEDIN%22%2C%22EMAIL%22%5D
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````