canonical: https://jentic.com/apis/azure.com/azure-mobile-engagement

# Microsoft Azure Engagement.ManagementClient

Jentic publishes the only available OpenAPI specification for Engagement.ManagementClient, keeping it validated and agent-ready. Microsoft Azure Mobile Engagement was a managed mobile-app engagement service that powered targeted push campaigns, in-app announcements, polls, and device-level analytics. The Engagement.ManagementClient API exposes 37 endpoints covering app collections, applications, push campaigns of every kind (announcement, poll, data push, native), campaign lifecycle (create, activate, suspend, finish, push, test), device queries, and export tasks for activities and devices. Use it where existing Mobile Engagement deployments still need programmatic management.

## For AI agents

Manage Azure Mobile Engagement app collections, push campaigns (announcements, polls, data push, native push), and device or activity export tasks across the full campaign lifecycle.

## Scope

Does not deliver SMS, email, or non-Mobile-Engagement push, and does not handle in-device SDK telemetry collection - use for Azure Mobile Engagement campaign and device management only.

## Capabilities

- Create push campaigns for announcements, polls, data push, and native push
- Activate, suspend, finish, or test a campaign already saved
- Push a saved campaign on demand to targeted devices
- Query devices running a Mobile Engagement-instrumented app
- Export device or activity logs for offline analytics
- Manage app collections and the apps that live inside them
- Retrieve campaign statistics for a given campaign ID

## Use cases

### Targeted Mobile Push Campaign Lifecycle

Marketing teams running Mobile Engagement-instrumented apps need to draft a campaign, test it on a small device set, activate it, monitor live statistics, and finish it cleanly. The Engagement.ManagementClient API exposes the full lifecycle through Campaigns_Create, Campaigns_TestNew, Campaigns_Activate, Campaigns_GetStatistics, and Campaigns_Finish - so an automation can drive an entire campaign without touching the legacy portal.

Example prompt: Create an announcement campaign on app myapp in collection prod, test it on a 100-device cohort, activate it after the test passes, and return the campaign ID.

### On-Demand Promo Push from a Saved Template

Operational teams keep pre-approved campaign templates for time-sensitive promos. The Campaigns_Push endpoint sends a previously saved campaign to its target audience on demand - the agent does not need to recreate the payload, just call push with the campaign ID. Combined with Campaigns_GetStatistics this supports rapid iteration during a flash sale.

Example prompt: Call Campaigns_Push for the saved campaign with id 12345 of kind announcement on app myapp.

### Device and Activity Analytics Export

When integrating Mobile Engagement into a larger analytics warehouse, teams need to export device-level and activity-level data. The API exposes ExportTasks_CreateActivitiesTask and ExportTasks_List, plus Devices_List, so a scheduled job can request a fresh export, poll for completion, and pull the result into BigQuery, Synapse, or Snowflake for unified analysis.

Example prompt: Create an activities export task for app myapp covering 2026-06-01 to 2026-06-09 and poll ExportTasks_List until the task state reads Succeeded.

### AI Agent Campaign Operations via Jentic

An automation agent integrated through Jentic can resolve a request like push a discount announcement to all iOS users in France end-to-end. It searches Jentic for create azure mobile engagement campaign, loads Campaigns_Create with the right payload shape, calls Campaigns_Activate, and reports completion. Credentials never leave your Jentic One instance.

Example prompt: Through Jentic, search for create azure mobile engagement announcement campaign, load Campaigns_Create, and create a campaign of kind announcement on app myapp targeting devices with locale=fr_FR.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileEngagement/appcollections/{appCollection}/apps/{appName}/campaigns/{kind} | Create a push campaign of a given kind |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileEngagement/appcollections/{appCollection}/apps/{appName}/campaigns/{kind}/{id}/activate | Activate a saved campaign |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileEngagement/appcollections/{appCollection}/apps/{appName}/campaigns/{kind}/{id}/push | Push a saved campaign on demand |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileEngagement/appcollections/{appCollection}/apps/{appName}/campaigns/{kind}/{id}/finish | Finish a running campaign |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileEngagement/appcollections/{appCollection}/apps/{appName}/campaigns/{kind}/{id}/statistics | Get statistics for a campaign |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileEngagement/appcollections/{appCollection}/apps/{appName}/devices/exportTasks/activities | Create an activities export task |

## Key resources

- **App Collections** — Logical groupings of mobile apps inside Mobile Engagement
- **Apps** — Individual mobile apps registered inside an app collection
- **Campaigns** — Push campaigns of kind announcement, poll, data push, or native push, with full lifecycle operations
- **Devices** — Devices reporting into a Mobile Engagement-instrumented app, queryable by tags and metadata
- **Export Tasks** — Asynchronous export jobs for activity logs and device data

## Why Jentic

- **Setup:** Wiring the Microsoft.MobileEngagement API by hand means acquiring Azure AD OAuth 2.0 bearer tokens for a retired service, building the deeply nested ARM URLs under management.azure.com, and driving the multi-step campaign lifecycle yourself. Through Jentic you install once, import Engagement.ManagementClient from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** App collection, app, and campaign ids travel in the URL path (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileEngagement/appcollections/{appCollection}/apps/{appName}/campaigns/{kind}/{id}/...), so a rule can pin your agent to one subscription, resource group, and app. You choose the operations it may call, so ones like activating, pushing, or finishing a campaign are not included unless you add them.
- **Credential handling:** Your Azure AD credential is stored once, encrypted, by your own Jentic One instance and injected as a short-lived bearer token at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create azure mobile engagement campaign' or 'export activity logs', and Jentic returns the matching Campaigns or ExportTasks operation with its app-collection, app-name, and campaign-kind input schema so the agent calls the right endpoint without browsing legacy ARM docs.

## Related APIs

- **EngagementFabric** — Microsoft Customer Engagement Fabric - manages multi-channel engagement accounts and channels rather than mobile push campaigns
- **EventGrid Management Client** — Wire engagement events into downstream Azure consumers
- **Diagnostics API Client** — Diagnose App Service workloads that may host the engagement back end

## FAQ

### Why is there no official OpenAPI spec for Engagement.ManagementClient?

Microsoft Azure does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Engagement.ManagementClient via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Engagement.ManagementClient use?

It uses Azure Active Directory OAuth 2.0 (azure_auth) against https://management.azure.com/. The principal needs at least Contributor on the target resource group. Through Jentic the underlying client secret stays in your Jentic One instance and the agent only sees a scoped bearer token.

### Can I send a push campaign without recreating it every time?

Yes. Once a campaign is saved with Campaigns_Create, POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MobileEngagement/appcollections/{appCollection}/apps/{appName}/campaigns/{kind}/{id}/push pushes it on demand to its targeted device set without changing the campaign payload.

### What are the rate limits for the Engagement.ManagementClient?

Standard Azure Resource Manager subscription-scoped throttling applies (broadly 12,000 reads per hour and 1,200 writes per hour). Push delivery itself is bounded by Mobile Engagement quotas on campaign volume - confirm your account-level limits before bursting bulk campaigns.

### How do I create and activate a campaign through Jentic?

Run pip install jentic, search for create azure mobile engagement campaign, load Campaigns_Create, supply appCollection, appName, kind (announcement, poll, dataPush, or nativePush), and the campaign body, then execute. Once it returns an id, call Campaigns_Activate with the same id.

### Is Azure Mobile Engagement still accepting new customers?

Microsoft retired Azure Mobile Engagement in 2018. This API serves customers maintaining historical deployments and migration tooling - for new mobile push needs use Azure Notification Hubs or a third-party engagement platform.

### Can I limit what my agent is allowed to do with the Azure Mobile Engagement API?

Yes. Jentic One runs self-hosted on your own infrastructure, so your rules decide which operations and credentials the agent may use. Because the subscription, resource group, app collection, app, and campaign ids all travel in the request path, you can pin the agent to a single subscription, resource group, and app. You also pick exactly which operations it may call, so lifecycle actions like activating, pushing, or finishing a campaign are excluded unless you add them.
