notification59 ops

Notification API

Push, SMS, and email notifications with per-channel providers and templates.

Queries

QUERY

adminListAnnouncements

#

List announcements with pagination (admin only)

Arguments

  • input!
Returns!
QUERY

adminTenantEmailProviders

#

List the email providers of a specific tenant (PlatformAdmin only). Mirrors emailProviders but takes the target tenant from the argument instead of the request context, so platform admins can inspect a tenant they're not impersonating. Used by the admin tenant detail page.

Arguments

  • tenantId!
Returns[!]!
QUERY

adminTenantPushProviders

#

List the tenant-owned push providers of a specific tenant (PlatformAdmin only). Mirrors pushProviders(ownership: TENANT) but takes the target tenant from the argument instead of the request context, so platform admins can inspect a tenant they're not impersonating. Used by the admin tenant detail page.

Arguments

  • tenantId!
Returns[!]!
QUERY

adminTenantSmsProviders

#

List the SMS providers of a specific tenant (PlatformAdmin only). Mirrors smsProviders but takes the target tenant from the argument instead of the request context, so platform admins can inspect a tenant they're not impersonating. Used by the admin tenant detail page.

Arguments

  • tenantId!
  • input!

    Default

    {
      "search": null,
      "pagination": {
        "limit": 10,
        "page": 1,
        "after": null
      }
    }
Returns!
QUERY

announcement

#

Get a single announcement by ID (admin only)

Arguments

  • id!
Returns
QUERY

announcements

#

Query active announcements targeted at the current account. The app is taken from the x-app request header.

Arguments

  • limitInt
Returns[!]!
QUERY

emailProvider

#

Get a specific email provider by ID

Arguments

  • idString!
Returns
QUERY

emailProviderDefinition

#

Get a specific email provider definition by ID

Arguments

  • idString!
Returns
QUERY

emailProviderDefinitions

#

List all available email provider definitions for the tenant

Returns[!]!
QUERY

emailProviders

#

List all email providers for the tenant

Returns[!]!
QUERY

emailScenarioDefinitions

#

List the email scenario definitions configurable from the caller's panel. Platform admins get platform + shared scenarios; tenant owners/admins get tenant + shared scenarios. Each definition carries its default subject, description, and the variables the system provides. # Authorization Requires PlatformAdmin, TenantOwner, or TenantAdmin role.

Returns[!]!
QUERY

emailTemplate

#

Get a specific email template by ID. Returns None when the template's scenario is outside the caller's panel, so existence is not leaked across roles. # Authorization Requires PlatformAdmin, TenantOwner, or TenantAdmin role.

Arguments

  • idString!
Returns
QUERY

emailTemplateByScenario

#

Get the active email template for a specific scenario. Returns None when the scenario is outside the caller's panel. # Authorization Requires PlatformAdmin, TenantOwner, or TenantAdmin role.

Arguments

  • scenario!
Returns
QUERY

emailTemplates

#

List the email templates configurable from the caller's panel. Templates whose scenario is outside the caller's role (e.g. a platform billing scenario for a tenant admin) are filtered out so the list stays coherent with [super::EmailScenarioDefinitionQuery]. # Authorization Requires PlatformAdmin, TenantOwner, or TenantAdmin role.

Returns[!]!
QUERY

liveActivities

#

Query live activities for the current account

Arguments

  • app!
  • topics[String!]
Returns[!]!
QUERY

myNotificationPreferences

#

Get the current user's notification preferences. Returns preferences grouped by category, filtered for the caller's app and role. Merges tenant defaults with user overrides.

Returns!
QUERY

notifications

#

Query durable notifications for the current account

Arguments

  • app!
  • status
  • limitInt
  • offsetInt
Returns[!]!
QUERY

pushProvider

#

Get a single push provider by id (admin only).

Arguments

  • idString!
Returns
QUERY

pushProviders

#

List push providers for an owner scope (admin only). Defaults to the caller's tenant-owned providers; ownership: PLATFORM lists the shared platform providers and requires a platform admin.

Arguments

  • ownership
Returns[!]!
QUERY

smsProvider

#

Get a specific SMS provider by ID (admin only)

Arguments

  • idString!
Returns
QUERY

smsProviderCatalog

#

Every SMS gateway, ranked for the given countries. Pass the tenant's operating countries (from myOperationFootprint) to get per-country prices, a coverage verdict, and a recommendation. Pass an empty list to get the bare catalog — credential schemas and integration status, with no pricing.

Arguments

  • countryCodes[String!]!

    ISO 3166-1 alpha-2 codes the gateway must serve, e.g. ["GB", "SA"].

    Default

    []
Returns[!]!
QUERY

smsProviderCoverage

#

Full SMS provider coverage matrix. Globally-available providers report an empty country_codes list with is_global = true.

Returns[!]!
QUERY

smsProviders

#

List all SMS providers for the tenant (admin only)

Arguments

  • input!

    Default

    {
      "search": null,
      "pagination": {
        "limit": 10,
        "page": 1,
        "after": null
      }
    }
Returns!
QUERY

smsProvidersForCountry

#

SMS providers available in the given country. Includes globally- available providers (Twilio, Infobip, etc.) in every response. country_code must be an ISO 3166-1 alpha-2 code (case-insensitive).

Arguments

  • countryCodeString!

    ISO 3166-1 alpha-2 country code (e.g. "KW", "US").

Returns[!]!
QUERY

smsTemplate

#

Get a specific SMS template by ID

Arguments

  • idString!
Returns
QUERY

smsTemplates

#

List all SMS templates for the tenant

Returns[!]!
QUERY

unreadCount

#

Get unread count for an app

Arguments

  • app!
ReturnsInt!

Mutations

MUTATION

createAnnouncement

#

Create an announcement (admin only)

Arguments

  • input!
Returns!
MUTATION

createEmailProvider

#

Create a new email provider configuration

Arguments

  • input!
Returns!
MUTATION

createEmailProviderDefinition

#

Create a custom email provider definition (SMTP or HTTP Webhook)

Arguments

  • input!
Returns!
MUTATION

createEmailTemplate

#

Create a new email template. # Authorization Requires an admin-tier role *and* that the scenario belongs to the caller's panel (tenant admins cannot create platform templates, and vice versa).

Arguments

  • input!
Returns!
MUTATION

createNotification

#

Create a new durable notification

Arguments

  • input!
Returns!
MUTATION

createSmsProvider

#

Create a new SMS provider (admin only)

Arguments

  • input!
Returns!
MUTATION

createSmsTemplate

#

Create a new SMS template

Arguments

  • input!
Returns!
MUTATION

deactivateEmailProviderDefinition

#

Deactivate a custom email provider definition

Arguments

  • idString!
ReturnsBoolean!
MUTATION

deleteAnnouncement

#

Delete an announcement (admin only)

Arguments

  • id!
ReturnsBoolean!
MUTATION

deleteEmailProvider

#

Delete an email provider

Arguments

  • idString!
ReturnsBoolean!
MUTATION

deleteEmailTemplate

#

Delete an email template. # Authorization Requires an admin-tier role; the template's scenario must belong to the caller's panel (enforced in the use case once the template is loaded).

Arguments

  • idString!
ReturnsBoolean!
MUTATION

deleteSmsProvider

#

Delete an SMS provider (admin only)

Arguments

  • idString!
ReturnsBoolean!
MUTATION

deleteSmsTemplate

#

Delete an SMS template

Arguments

  • idString!
ReturnsBoolean!
MUTATION

dismissNotification

#

Dismiss a notification

Arguments

  • input!
ReturnsBoolean!
MUTATION

endLiveActivity

#

End a live activity

Arguments

  • input!
ReturnsBoolean!
MUTATION

markAllRead

#

Mark all notifications as read

Arguments

  • input!
ReturnsInt!
MUTATION

markNotificationRead

#

Mark a notification as read

Arguments

  • input!
ReturnsBoolean!
MUTATION

registerLiveActivityToken

#

Register an iOS ActivityKit Live Activity push token for direct APNs delivery of content-state updates.

Arguments

  • input!
Returns!
MUTATION

registerPushToken

#

Register a push notification token for the authenticated device

Arguments

  • input!
Returns!
MUTATION

removePushToken

#

Remove the push token for the authenticated device (call on logout).

ReturnsBoolean!
MUTATION

sendTestEmail

#

Send a test email for the given scenario, using the caller's tenant's default email provider and its configured template. Always returns the rendered preview. When dryRun is true the email is rendered but not dispatched, so admins can verify placeholder substitution before committing to a real send. # Authorization Requires an admin-tier role *and* that the scenario belongs to the caller's panel — a tenant cannot test-send a platform scenario, and vice versa.

Arguments

  • input!
Returns!
MUTATION

setDefaultEmailProvider

#

Set an email provider as the default for the tenant

Arguments

  • idString!
ReturnsBoolean!
MUTATION

setDefaultSmsProvider

#

Set an SMS provider as the default (admin only)

Arguments

  • idString!
ReturnsBoolean!
MUTATION

testSmsProvider

#

Test an SMS provider by sending a test message (admin only)

Arguments

  • idString!
  • phoneNumberString!
Returns!
MUTATION

updateAnnouncement

#

Update an announcement (admin only)

Arguments

  • input!
Returns!
MUTATION

updateEmailProvider

#

Update an existing email provider

Arguments

  • input!
Returns!
MUTATION

updateEmailProviderDefinition

#

Update a custom email provider definition

Arguments

  • input!
Returns!
MUTATION

updateEmailTemplate

#

Update an existing email template. # Authorization Requires an admin-tier role; the template's scenario must belong to the caller's panel (enforced in the use case once the template is loaded).

Arguments

  • input!
Returns!
MUTATION

updateLiveActivity

#

Update a live activity

Arguments

  • input!
Returns!
MUTATION

updateMyNotificationPreferences

#

Update the current user's notification preferences. Accepts a list of preference changes (subject + channel + enabled). Only marketing/optable subjects can be toggled — transactional and OTP subjects are rejected. Returns the full updated preferences after applying changes.

Arguments

  • input!
Returns!
MUTATION

updateSmsProvider

#

Update an existing SMS provider (admin only)

Arguments

  • input!
Returns!
MUTATION

updateSmsTemplate

#

Update an existing SMS template

Arguments

  • input!
Returns!