---
sourceDocument: Australia API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/api-reference

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Setting up push notifications in your iOS application

# Setting up push notifications in your iOS application {#ariaid-title1}

Release version: Australia  
Updated March 12, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of Setting up push notifications in your iOS application

This guide outlines the steps necessary for configuring push notifications in your iOS application using ServiceNow's NowPush SDK.
It includes code snippets for creating a push service, registering and unregistering push tokens, and parsing push notification payloads.
Show full answer Show less  

## Key Features

* **Create the NowPushService:** Implement the NowPushService in your application using the provided setup function to initialize push notifications.
* **Register the Push Token:** Use the device token provided by Apple to register for push notifications with your ServiceNow instance, ensuring your app can receive notifications.
* **Unregister the Push Token:** Remove the push token when the user logs out, maintaining privacy and ensuring notifications are sent only to active users.
* **Parse Push Payload:** Handle incoming push notifications by converting payloads into NowPushPayload objects, specifically for Virtual Agent notifications.

## Key Outcomes

By following these steps, you can successfully enable push notifications in your iOS application, allowing for timely communication with users. You will also ensure that your application can manage notification registrations effectively, enhancing user experience and engagement.  
In addition to the tasks that you must perform on your ServiceNow instance to configure a push notification, you must also include specific code in your iOS application.

## Create the NowSDK NowPushService {#mobsdk-ios-setup-push-app__section_hyb_zxp_prb}

One of the first things that needs to be done in your application is to create a
`NowPushService`. The `NowPush` SDK provides a factory
function to create this service. Add code similar to the following snippet early within your
main code body.

    func setup(with instanceURL: URL) -> AnyPublisher<NowService, ConfigurationError> {
      NowPush.makePushService(instanceUrl: instanceURL)
        .mapError { .sdkError($0) }
        .map { $0 as NowService }
        .eraseToAnyPublisher()
    }

For additional information on the NowPush.makePushService() method, refer to [NowPush API - iOS](https://servicenow-prod.fluidtopics.net/FICgDK1rhTjscrffVEqLWQ#NowPushiOSAPI "The NowPush API is a top-level global API that enables users to instantiate a NowPush service instance.").

## Register the push token {#mobsdk-ios-setup-push-app__section_kyr_4cq_prb}

Apple provides a unique push notification token that identifies the device and application to receive push notifications. In order for an application to receive push notification, you must register this token using
the `NowPushService`. Add a function similar to the following code snippet in your iOS application. This application must be registered with your ServiceNow instance.

    func registerForPushNotifications(deviceToken: Data) {
      pushService.registerPushToken(deviceToken,
          pushAppName: "TestPushApp", // Modify this to be your iOS application name
          environment: environment) { [weak self] result in
        guard let self = self else { return }
        switch result {
        case .success:
          UserDefaults.standard.set(true, forKey: "pushNotificationsRegistered")
          self.pushRegistrationState = .registrationSuccess
        case .failure:
          UserDefaults.standard.set(false, forKey: "pushNotificationsRegistered")
          self.pushRegistrationState = .registrationFailed
        }
      }
    }

For additional information on the registerPushToken() method, refer to [NowPushService - registerPushToken(_token: Data, pushAppName: String, environment: NowPushEnvironment, completion: @escaping (Result\<Data, NowPushError\>) -\> Void)](https://servicenow-prod.fluidtopics.net/xn6H6KRdD~U6wMnqfVeNcg#NPushServ-registerPushToken_O_S_O_O "Registers a unique token with the ServiceNow instance used to identify the push notifications for the current iOS device and specified application.").

## Unregister the push token

You need to unregister a push token whenever the user exits your application, such as when the user logs out. Use code similar to the following code snippet to unregister a push token. Ensure that you change
pushAppName to the name of your iOS application.

    func unregisterFromPushNotifications(deviceToken: Data) {
      pushService.unregisterPushToken(deviceToken, pushAppName: "TestPushApp", environment: environment) { [weak self] result in
        guard let self = self else { return }
        switch result {
        case .success:
          UserDefaults.standard.set(false, forKey: "pushNotificationsRegistered")
          self.pushRegistrationState = .unregisterSuccess
        case .failure:
          self.pushRegistrationState = .unregisterFailed
        }
      }
    }

For additional information on the unregisterPushToken() method, refer to [NowPushService - unregisterPushToken(_token: Data, pushAppName: String, environment: NowPushEnvironment, completion: @escaping (Result\<Data, NowPushError\>) -\> Void)](https://servicenow-prod.fluidtopics.net/xn6H6KRdD~U6wMnqfVeNcg#NPushServ-unregisterPushToken_O_S_O_O "Unregisters a previously registered push token.").

## Parse push payload {#mobsdk-ios-setup-push-app__section_ofn_dlw_trb}

You will need to parse push notification payloads into a `NowPushPayload`
object to collect information and to use the data in other parts of the application.
Currently, this is only available for Virtual Agent push notifications. Use code similar to
the following

    func userNotificationCenter(_ center: UNUserNotificationCenter,
        didReceive response: UNNotificationResponse,
        withCompletionHandler completionHandler: @escaping () -> Void) {
      guard let pushService = pushService else {
        completionHandler()
        return
      }
      let userInfo = response.notification.request.content.userInfo
      _ = pushService.payloadFromUserInfo(userInfo)
        .flatMap(handleNowPushPayload)
    }

    func handleNowPushPayload(_ payload: NowPushPayload) -> Result<Void, NowPushError> {
      guard payload is NowPushVirtualAgent else {
        return .failure(NowPushError.unsupportedData)
      }
      launchVirtualAgent()
      return .success(())
    }


