# How to connect Batch to my CMS?

You can connect your CMS to Batch to send push notifications using the [Campaigns API](https://doc.batch.com/developer/api/cep/campaigns). It gives you the same level of features as the Batch dashboard:

* **Targeting**: Basic, native and custom attributes targeting
* **Scheduling**: Scheduled and recurring push automations
* **Messaging**: A/B testing, deeplink, custom payload, rich push notifications, etc.

Here is what a basic **Campaigns API + CMS** setup looks like:

<figure><img src="https://38998153-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCL8wF0y1T2vLnm3yR2MW%2Fuploads%2FNm7TCDesfkKapAVvTpvn%2FPre%CC%81sentation%20sans%20titre.jpg?alt=media&#x26;token=ccce7879-acfb-44af-b3fe-4b382d9b5ba4" alt=""><figcaption></figcaption></figure>

With the Batch APIs, you can:

* [**Create**](https://doc.batch.com/developer/api/cep/campaigns/create)**,** [**update**](https://doc.batch.com/developer/api/cep/campaigns/update)**, or** [**delete**](https://doc.batch.com/developer/api/cep/campaigns/delete) an existing push campaign. If the POST to the API endpoint is successful, you will receive an HTTP 201 confirmation with an orchestration ID. Each time you send a push notification, Batch receives feedback from APNS/FCM and cleans the invalid tokens for you.&#x20;
* **Get reports on your campaigns:**
  * Use the Batch Orchestrations API to [list orchestrations](https://doc.batch.com/developer/api/cep/orchestrations/list) and [get orchestrations stats](https://doc.batch.com/developer/api/cep/orchestrations/stats)
  * Use the Batch Export API to [generate granular Events exports](https://doc.batch.com/developer/api/cep/profiles/export).
