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

# Send a push notification to mobile-app users

> Triggers an Expo push notification to mobile-app users of the organization. Recipient resolution depends on `recipientType`:
  - `user`         → the single `userId` provided
  - `organization` → all distinct users in the org with active devices
  - `phone`        → users currently assigned to the conversation matching `phoneNumber`

When `respectPreferences` is true (default), the resolved list is filtered by each user's `NotificationPreference` (enabled / activeHours / assignedOnly).
Sound enum maps cross-platform: on iOS the file `cash.wav` (bundled in the app) is named in the payload; on Android the `cash` notification channel is targeted (the channel binds the sound resource).




## OpenAPI

````yaml /openapi-make.json post /integrations/make/notifications/push
openapi: 3.0.3
info:
  title: SmartSend Make.com API
  version: 1.0.0
  description: >-
    Public HTTP API for the SmartSend Make.com integration. Every request is
    authenticated with the `x-organization-id` header. These are the endpoints
    Make.com (and any external automation tool) calls to send messages, manage
    conversations, tags, lists, custom fields, and more.
  contact:
    name: SmartSend Support
    email: support@smartsend.com
servers:
  - url: https://smartsend-server.otherwise.co.il
    description: Production
  - url: http://localhost:3091
    description: Local development
security:
  - organizationId: []
tags: []
paths:
  /integrations/make/notifications/push:
    post:
      tags:
        - Make.com Integration
      summary: Send a push notification to mobile-app users
      description: >
        Triggers an Expo push notification to mobile-app users of the
        organization. Recipient resolution depends on `recipientType`:
          - `user`         → the single `userId` provided
          - `organization` → all distinct users in the org with active devices
          - `phone`        → users currently assigned to the conversation matching `phoneNumber`

        When `respectPreferences` is true (default), the resolved list is
        filtered by each user's `NotificationPreference` (enabled / activeHours
        / assignedOnly).

        Sound enum maps cross-platform: on iOS the file `cash.wav` (bundled in
        the app) is named in the payload; on Android the `cash` notification
        channel is targeted (the channel binds the sound resource).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - recipientType
                - title
                - body
              properties:
                recipientType:
                  type: string
                  enum:
                    - user
                    - organization
                    - phone
                  description: How to resolve the target users
                userId:
                  type: string
                  description: Required when recipientType is "user" (from /rpc/users)
                phoneNumber:
                  type: string
                  description: >-
                    Required when recipientType is "phone". Any format (972...,
                    05..., +972...)
                title:
                  type: string
                  description: Notification title (capped to 200 chars)
                body:
                  type: string
                  description: Notification body (capped to 1000 chars)
                sound:
                  type: string
                  enum:
                    - default
                    - cash
                  description: Sound to play. Defaults to "default".
                respectPreferences:
                  type: boolean
                  description: >-
                    When true (default), apply the recipient's
                    NotificationPreference filter (enabled, active hours,
                    assigned-only).
      responses:
        '200':
          description: Push notification queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      recipientType:
                        type: string
                      targetedUserIds:
                        type: integer
                      eligibleUserIds:
                        type: integer
                      deviceCount:
                        type: integer
                      tickets:
                        type: integer
                      note:
                        type: string
                        nullable: true
        '400':
          description: Missing/invalid input
        '404':
          description: >-
            No conversation found for phoneNumber (only when recipientType is
            "phone")
      security:
        - organizationId: []
components:
  securitySchemes:
    organizationId:
      type: apiKey
      in: header
      name: x-organization-id
      description: Your SmartSend Organization ID. Required on every request.

````