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

# Send Sales Navigator InMail Schedule

> Schedule sending a Sales Navigator InMail at a specific time or on a recurring basis.

<Card title="Free with Engagement Mode" icon="gem" href="/v1/identities/engagement" arrow="false" horizontal>
  No credits required when executed with an Engagement Identity. Set type: "engagement" when creating an Identity via API.
</Card>

<Tip>
  To run LinkedIn actions, you must first create an identity and connect a LinkedIn
  account, either using our [Chrome
  Extension](https://chromewebstore.google.com/detail/edges-labs/bippgnolleoecnhaninlfmdapbakklpf),
  [username/password login](/v1/api/linkedin/authentication), or [Managed
  Accounts](/v1/identities/sync-vs-managed) for a hassle-free setup.
</Tip>

## Reliability & error handling

When sending an InMail, Edges may detect that the target user has **blocked** the sender.
In that case, we perform an additional check to determine whether you still have InMail credits:

* If credits **remain**, the API returns **`SN_INMAIL_UNREACHABLE_USER`**
* If credits are **exhausted**, the API returns **`LK_INMAIL_NOT_ENOUGH_CREDIT`**

**Edge case:** if you have **0 credits** and the target user blocked you, the returned error will be `LK_INMAIL_NOT_ENOUGH_CREDIT`.

<Note>
  **Callback Delivery**: Both `async` and `schedule` modes deliver results via the callback URL provided in your request.

  **Consistent Format**: All execution modes use the same action logic, so inputs and results are identical regardless of mode.

  **Error Handling**: Errors follow the [standard API error format](/v1/faq-troubleshooting#troubleshooting-errors).
</Note>

Using `async` and `schedule` modes, you have to implement some kind of callback management. Be sure to check the [Managing Callbacks](/v1/runs/callbacks) guide to better understand how it works and what your can do.


## OpenAPI

````yaml v1/api/actions.json post /actions/salesnavigator-inmail-profile/run/schedule
openapi: 3.1.0
info:
  title: ED Automation External API
  description: This is the External API documentation for ED Automation
  version: dev
servers:
  - url: https://api.edges.run/v1
security:
  - XApiKeyAuth: []
paths:
  /actions/salesnavigator-inmail-profile/run/schedule:
    post:
      tags:
        - actions / salesnavigator
      summary: Schedule salesnavigator-inmail-profile action
      operationId: salesnavigatorInmailProfileSchedule
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                parameters:
                  type: object
                  properties:
                    subject:
                      type: string
                      default: ''
                      title: Subject
                      description: The subject of the message
                      x-display-widget: textbox
                    message:
                      type: string
                      default: ''
                      format: string
                      title: Message
                      description: The message to send
                      maxLength: 1900
                      x-display-widget: textarea
                    files:
                      type: array
                      title: Message attachments
                      description: >-
                        Optional list of files to attach to the message. Each
                        attachment must be provided as a Base64-encoded file
                        along with its original filename.
                      items:
                        type: object
                        additionalProperties: false
                        title: Attachment
                        description: >-
                          Represents a single file attachment, including its
                          encoded content and metadata.
                        properties:
                          file_data:
                            type: string
                            title: File content (Base64)
                            description: >-
                              Base64-encoded binary content of the file. The
                              value must contain only the encoded data (no data
                              URI prefix such as "data:image/png;base64,").
                              Maximum encoded size is 27 MB.
                            format: byte
                            maxLength: 27000000
                          filename:
                            type: string
                            format: string
                            title: Filename with extension
                            description: >-
                              Original name of the file, including its
                              extension. The extension determines the file type
                              and must be one of the supported formats. Allowed
                              characters: letters, numbers, spaces, underscores,
                              and hyphens.
                            pattern: >-
                              /^[A-Za-z0-9
                              _-]+\.(png|jpg|jpeg|gif|bmp|webp|tiff|svg|mp3|m4a|mp4|avi|wav|flac|ico|pdf|doc|docx|xls|xlsx|ppt|pptx|txt|csv|odt|odp|ods|rar|zip)$/i
                    smart_links:
                      type: object
                      additionalProperties: false
                      properties:
                        title:
                          type: string
                        links:
                          type: array
                          items:
                            type: object
                            oneOf:
                              - type: object
                                additionalProperties: false
                                properties:
                                  file_data:
                                    type: string
                                    title: File
                                    description: The file in Base64.
                                    format: byte
                                    maxLength: 27000000
                                  filename:
                                    type: string
                                    format: string
                                    title: File name
                                    description: The name of the file with its extension.
                                    pattern: >-
                                      /^[A-Za-z0-9
                                      _-]+\.(png|jpg|jpeg|gif|bmp|webp|tiff|svg|mp3|m4a|mp4|avi|wav|flac|ico|pdf|doc|docx|xls|xlsx|ppt|pptx|txt|csv|odt|odp|ods|rar|zip)$/i
                                required:
                                  - file_data
                                  - filename
                              - type: object
                                additionalProperties: false
                                properties:
                                  title:
                                    type: string
                                  url:
                                    type: string
                                    format: uri
                                required:
                                  - title
                                  - url
                  additionalProperties: false
                  default: {}
                name:
                  type: string
                  description: Optional user-defined label for the run.
                  maxLength: 255
                  nullable: true
                identity_ids:
                  type: array
                  description: >-
                    An array of Identity UUIDs linked to identities (e.g.
                    LinkedIn) used to execute the Action. You must provide at
                    least one valid UID with access to the integration. Do not
                    use account_uid values — only user_uid is supported.
                  items:
                    type: string
                    format: uuid
                  nullable: true
                  example:
                    - 44444444-4444-4444-4444-444444444444
                inputs:
                  type: array
                  items:
                    $ref: '#/components/schemas/SalesnavigatorInmailProfileInput'
                  minItems: 1
                  maxItems: 100
                callback:
                  type: object
                  properties:
                    url:
                      type: string
                      description: >-
                        URL to send the results to. The Action will send a POST
                        request with the results to this URL. The request will
                        include a JSON body with the results of the Action.
                      nullable: true
                      pattern: ^(https?:\/\/[^\s]+)$
                      example: https://example.com/callback
                    headers:
                      type: object
                      description: Headers to include in the callback request.
                      additionalProperties:
                        type: string
                    'on':
                      type: string
                      description: >-
                        Define when you want to receive callbacks. "all" will
                        send callbacks to stream outputs, "final" will send a
                        single callback when all inputs are processed or an
                        error occured on the run.
                      enum:
                        - all
                        - final
                      default: all
                  required:
                    - url
                timezone:
                  type: string
                  minLength: 1
                  maxLength: 64
                  description: >-
                    The timezone to use for the cron expression (IANA timezone
                    format, e.g., "America/New_York" or "Europe/Paris"). If not
                    provided, the UTC timezone will be used.
                cron:
                  type: string
                  minLength: 1
                  maxLength: 256
                  description: >-
                    Cron expression for scheduling the action. If provided, the
                    action will be scheduled to run at the specified intervals.
                schedule_at:
                  type: string
                  format: date-time
                  description: >-
                    This is for one shot or 1st programmation calls. If not
                    provided, the run will be scheduled immediately.
              additionalProperties: false
              anyOf:
                - properties:
                    cron:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: >-
                        Cron expression for scheduling the action. If provided,
                        the action will be scheduled to run at the specified
                        intervals.
                  required:
                    - cron
                - properties:
                    schedule_at:
                      type: string
                      format: date-time
                      description: >-
                        This is for one shot or 1st programmation calls. If not
                        provided, the run will be scheduled immediately.
                  required:
                    - schedule_at
              required:
                - inputs
                - callback
      responses:
        '200':
          $ref: '#/components/responses/ActionScheduleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '424':
          $ref: '#/components/responses/FailedDependency'
        '500':
          $ref: '#/components/responses/InternalServerError'
      callbacks:
        onSave:
          '{$request.body#/callback/url}':
            post:
              responses:
                '200':
                  description: Callback successfully processed
              parameters:
                - name: X-Callback-Ref
                  in: header
                  required: true
                  schema:
                    type: string
                    format: uuid
                  description: >-
                    Stable identifier for the callback event. Remains the same
                    across retries.
                - name: X-Run-Callback
                  in: header
                  required: true
                  schema:
                    type: string
                    format: uuid
                  description: Unique identifier for each delivery attempt of the webhook.
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        callback_ref_uid:
                          type: string
                          format: uuid
                          description: >-
                            Stable callback identifier (remains identical across
                            retries). Used by clients for deduplication.
                        run:
                          type: object
                          properties:
                            run_uid:
                              type: string
                              format: uuid
                              description: Unique identifier of the run.
                            batch_uid:
                              type: string
                              format: uuid
                              description: >-
                                Unique identifier of the batch associated with
                                this run (internal use).
                            status:
                              type: string
                              enum:
                                - CREATED
                                - INVALID
                                - QUEUED
                                - SCHEDULED
                                - BLOCKED
                                - STOPPED
                                - RUNNING
                                - FAILED
                                - PARTIAL_SUCCEEDED
                                - SUCCEEDED
                              description: >-
                                Status of the run at the time this callback was
                                generated. This value does not change on retries
                                and may differ from the run’s current status.
                            scheduled_run_uid:
                              type: string
                              format: uuid
                              description: >-
                                Unique identifier of the scheduled run, if
                                applicable.
                          required:
                            - run_uid
                            - batch_uid
                            - status
                        input:
                          $ref: >-
                            #/components/schemas/SalesnavigatorInmailProfileInput
                        error:
                          $ref: '#/components/schemas/APIError'
                        results_count:
                          type: integer
                          description: Number of results included in this callback.
                        results:
                          type: array
                          items:
                            $ref: >-
                              #/components/schemas/SalesnavigatorInmailProfileOutput
                          description: Results of the current callback
                      required:
                        - callback_ref_uid
                        - run
              method: post
              type: path
            path: '{$request.body#/callback/url}'
components:
  schemas:
    SalesnavigatorInmailProfileInput:
      type: object
      properties:
        sales_navigator_profile_url:
          pattern: >-
            /^https:\/\/(?:(www|[a-z]{2})\.)?linkedin\.com\/sales\/(?:people|lead)\/([\w-]+),(?:name|NAME_SEARCH),([\w-]+)/
          type: string
          format: uri
          description: >-
            A Sales Navigator Profile URL should start with
            'https://www.linkedin.com/sales/people/' or
            'https://www.linkedin.com/sales/lead/' and should contain 'name' or
            'NAME_SEARCH'
          x-primary: true
          x-placeholder: Sales Navigator Profile URL
          x-help: >-
            A Sales Navigator Profile URL should start with
            'https://www.linkedin.com/sales/people/' or
            'https://www.linkedin.com/sales/lead/' and should contain 'name' or
            'NAME_SEARCH'
          x-variations:
            - url
            - profile_url
            - linkedin_url
        custom_data:
          type: object
          additionalProperties: true
          description: Custom data (ex-metadata)
      additionalProperties: false
      required:
        - sales_navigator_profile_url
    APIError:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          examples:
            - ERR-12345
          nullable: true
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          patternProperties:
            ^[^_].*:
              anyOf:
                - type: string
                - type: number
                - type: boolean
                - type: 'null'
                - type: array
                  items:
                    type: string
          additionalProperties: false
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
    SalesnavigatorInmailProfileOutput:
      type: object
      properties:
        message:
          type: string
        sales_navigator_profile_id:
          type: string
        linkedin_profile_id:
          type: integer
        linkedin_thread_id:
          type: string
        linkedin_message_id:
          type: string
    BadRequest:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          nullable: true
          example: ERR-12345
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  type: string
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
    FailedDependency:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          nullable: true
          example: ERR-12345
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  type: string
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
    InternalServerError:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          nullable: true
          example: ERR-12345
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  type: string
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
  responses:
    ActionScheduleResponse:
      description: Default Response
      content:
        application/json:
          schema:
            type: object
            properties:
              schedule_uid:
                type: string
                description: The UID of the scheduled run.
              status:
                type: string
                enum:
                  - ACTIVE
                  - CANCELLED
                  - PAUSED
                  - COMPLETED
                description: The status of the scheduled run.
              cron:
                type: string
                description: Cron expression for the scheduled run (POSIX format)
                nullable: true
              timezone:
                type: string
                description: Timezone for the scheduled run (IANA timezone format)
                nullable: true
              next_execution_at:
                type: string
                format: date-time
                nullable: true
                description: Next execution at
              created_at:
                type: string
                format: date-time
                description: The date and time when the run was created.
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequest'
    FailedDependency:
      description: Failed Dependency
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FailedDependency'
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerError'
  securitySchemes:
    XApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````