1. What it is for
- Use this guide when another app needs to send a compact message into Dynamics.
- Follow the provided
sample.pyflow directly, without extra setup details here. - If sender approval is required, allow it in
Settings > Permissions.
2. Payload format
Messages are passed through the distributed notification
userInfo dictionary.
| Field | Description | Requirements / limits |
|---|---|---|
senderBundleID |
Sender bundle ID | Recommended; used for sender identity and permission tracking. |
appName |
Display name | Recommended; max about 120 characters. |
appIconPath |
Icon path or .app path |
Optional; max about 1024 characters. |
title |
Message title | Optional; default is New message; max about 180 characters. |
detail |
Message detail | Optional; max about 600 characters. |
Compatible aliases include sender_bundle_id, bundleID,
bundleId, app_name, app_icon_path,
iconPath, details, body, text,
and message.
{
"senderBundleID": "com.example.MyApp",
"appName": "My App",
"appIconPath": "/Applications/My App.app",
"title": "Build Finished",
"detail": "0 errors, 2 warnings"
}
3. How to use
Use sample.py from the repository root. No third-party dependency is required.
python3 sample.py
Custom payload example:
python3 sample.py \
--bundle-id com.example.MyApp \
--app-name "My App" \
--icon-path "/Applications/My App.app" \
--title "Deploy Completed" \
--detail "Production deployment succeeded"
-
--dynamics-bundle-id: specify the Dynamics bundle ID used for the running check. Default:us.zuos.dynamics. --skip-running-check: skip the "is Dynamics running" check.-
By default,
sample.pychecks whether Dynamics is running first. If not, it returns exit code3.