n8n-nodes-appcenter
v1.0.0
Published
A comprehensive n8n community node for Microsoft App Center providing 10 resources and 100+ operations for mobile DevOps automation including builds, distribution, analytics, crash reporting, testing, and CodePush updates.
Maintainers
Readme
n8n-nodes-appcenter
Velocity BPA Licensing Notice
This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
For licensing information, visit https://velobpa.com/licensing or contact [email protected].
A comprehensive n8n community node for Microsoft App Center, the mobile DevOps platform for iOS, Android, Windows, and macOS apps. This node enables workflow automation for builds, distribution, analytics, crash reporting, testing, and CodePush updates.
Features
- Build Automation: Trigger, monitor, and manage builds with branch configuration support
- Distribution Management: Upload releases, manage distribution groups, and send to testers
- Analytics: Access session data, active users, events, devices, and geographic distributions
- Crash Reporting: Monitor crash groups, upload symbols, and track crash-free users
- Test Cloud: Create and manage test runs on real devices with multiple frameworks
- CodePush: Manage over-the-air updates for React Native and Cordova apps
- Organization Management: Manage teams, users, and permissions
- Repository Integration: Connect and manage Git repositories
- Push Notifications: Send push notifications to app users
- Webhook Triggers: Automate workflows on build, release, crash, and test events
Installation
Community Nodes (Recommended)
- Open your n8n instance
- Go to Settings > Community Nodes
- Select Install
- Enter
n8n-nodes-appcenter - Agree to the risks and click Install
Manual Installation
# Navigate to your n8n installation directory
cd ~/.n8n
# Install the package
npm install n8n-nodes-appcenterDevelopment Installation
# 1. Extract the zip file
unzip n8n-nodes-appcenter.zip
cd n8n-nodes-appcenter
# 2. Install dependencies
npm install
# 3. Build the project
npm run build
# 4. Create symlink to n8n custom nodes directory
# For Linux/macOS:
mkdir -p ~/.n8n/custom
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-appcenter
# For Windows (run as Administrator):
# mklink /D %USERPROFILE%\.n8n\custom\n8n-nodes-appcenter %CD%
# 5. Restart n8n
n8n startCredentials Setup
To use the App Center node, you need to configure API credentials.
Obtaining an API Token
- Log into appcenter.ms
- Navigate to Account Settings (click your avatar)
- Select User API Tokens or App API Tokens
- Click New API Token
- Choose Full Access or Read Only
- Copy the token immediately (it's only shown once)
Credential Properties
| Property | Type | Required | Description | |----------|------|----------|-------------| | API Token | Password | Yes | Your App Center API token | | Owner Name | String | Yes | Organization or user name | | App Name | String | No | Default application name (optional) |
Resources & Operations
Apps
| Operation | Description | |-----------|-------------| | Get | Get app details | | Get Many | List all apps for owner | | Create | Create new application | | Update | Update app settings | | Delete | Delete application | | Get Secret | Get app secret key | | Transfer | Transfer app to another owner | | Get Teams | List teams with access | | Add Team | Add team to app | | Remove Team | Remove team from app | | Get Collaborators | List app collaborators |
Builds
| Operation | Description | |-----------|-------------| | Trigger | Start a new build | | Get | Get build details | | Get Many | List builds for branch | | Get Many For App | List all builds for app | | Cancel | Cancel running build | | Get Download URL | Get build artifact URL | | Get Logs | Get build logs | | Distribute | Distribute build to group | | Get Branches | List repository branches | | Get Branch Config | Get branch build configuration | | Create Branch Config | Create build config for branch | | Update Branch Config | Update branch configuration | | Delete Branch Config | Remove build configuration |
Distribution
| Operation | Description | |-----------|-------------| | Create Release | Upload new release | | Get Release | Get release details | | Get Latest | Get latest release | | Get Many | List releases | | Update | Update release metadata | | Delete | Delete release | | Distribute | Distribute to groups | | Add Destination | Add distribution destination | | Remove Destination | Remove destination | | Get Install URL | Get public install URL | | Create Group | Create distribution group | | Get Group | Get group details | | Get Groups | List distribution groups | | Update Group | Update group settings | | Delete Group | Delete distribution group | | Add Testers | Add testers to group | | Remove Testers | Remove testers from group | | Get Testers | List group members | | Resend Invites | Resend invitation emails |
Analytics
| Operation | Description | |-----------|-------------| | Get Sessions | Get session statistics | | Get Active Users | Get DAU/MAU metrics | | Get Active User Counts | Get active users over time | | Get Session Durations | Get session duration distribution | | Get Events | Get event analytics | | Get Event Properties | Get event property values | | Get Event Count | Get event occurrence counts | | Get Versions | Get version distribution | | Get Devices | Get device model breakdown | | Get Operating Systems | Get OS version breakdown | | Get Languages | Get language distribution | | Get Places | Get geographic distribution | | Get Models | Get device model stats | | Get Log Flow | Get real-time log stream |
Crashes
| Operation | Description | |-----------|-------------| | Get Groups | List crash groups | | Get Group | Get crash group details | | Get Crashes | List crashes in group | | Get Crash | Get crash details | | Get Stacktrace | Get crash stack trace | | Get Attachments | Get crash attachments | | Download Attachment | Download attachment file | | Update Group | Update group status/annotation | | Delete Group | Delete crash group | | Delete Crash | Delete single crash | | Get Counts | Get crash counts over time | | Get Crash-Free Users | Get crash-free percentage | | Get Missing Symbols | List missing symbols | | Get Symbol Uploads | List symbol uploads | | Create Symbol Upload | Create upload session | | Upload Symbols | Upload symbol file | | Commit Upload | Finalize symbol upload |
Test
| Operation | Description | |-----------|-------------| | Create Run | Create new test run | | Get Run | Get test run details | | Get Many | List test runs | | Start | Start test execution | | Stop | Stop running test | | Get State | Get test run state | | Get Report | Get test results report | | Upload App | Upload test application | | Upload Tests | Upload test files | | Get Device Sets | List device sets | | Get Device Set | Get device set details | | Create Device Set | Create device set | | Update Device Set | Update device set | | Delete Device Set | Delete device set | | Get Devices | List available test devices | | Get Device Configs | List device configurations |
CodePush
| Operation | Description | |-----------|-------------| | Get Deployments | List deployments | | Get Deployment | Get deployment details | | Create Deployment | Create new deployment | | Update Deployment | Rename deployment | | Delete Deployment | Delete deployment | | Release | Release CodePush update | | Promote | Promote between deployments | | Rollback | Rollback to previous release | | Patch Release | Modify release properties | | Clear History | Clear deployment history | | Get Metrics | Get deployment metrics | | Get History | Get release history |
Organizations
| Operation | Description | |-----------|-------------| | Get | Get organization details | | Get Many | List user's organizations | | Create | Create organization | | Update | Update organization | | Delete | Delete organization | | Get Users | List organization members | | Invite User | Invite user to organization | | Remove User | Remove user from organization | | Update User Role | Change user role | | Get Teams | List organization teams | | Create Team | Create team | | Get Team | Get team details | | Update Team | Update team | | Delete Team | Delete team | | Add Team Member | Add member to team | | Remove Team Member | Remove member from team |
Repositories
| Operation | Description | |-----------|-------------| | Get Config | Get repository configuration | | Get Many | List connected repositories | | Connect | Connect repository | | Disconnect | Disconnect repository | | Get Branches | List branches | | Get Commits | List commits for branch |
Push Notifications
| Operation | Description | |-----------|-------------| | Send | Send push notification | | Get Many | List push notifications | | Get | Get notification details | | Get Device Registrations | List registered devices | | Delete Device Registration | Remove device registration |
Trigger Node
The App Center Trigger node starts workflows when events occur in App Center.
Supported Events
| Event | Description | |-------|-------------| | build.succeeded | Build completed successfully | | build.failed | Build failed | | release.created | New release uploaded | | crash_group.new | New crash group detected | | test_run.completed | Test run finished successfully | | test_run.failed | Test run failed |
Usage
- Add the App Center Trigger node to your workflow
- Configure credentials
- Enter the Owner Name and App Name
- Select the events to listen for
- Activate the workflow
Usage Examples
Build and Distribute
{
"name": "Build and Distribute",
"nodes": [
{
"name": "Trigger Build",
"type": "n8n-nodes-appcenter.appCenter",
"parameters": {
"resource": "builds",
"operation": "trigger",
"branch": "main"
}
},
{
"name": "Wait for Build",
"type": "n8n-nodes-base.wait",
"parameters": {
"unit": "minutes",
"amount": 10
}
},
{
"name": "Distribute",
"type": "n8n-nodes-appcenter.appCenter",
"parameters": {
"resource": "distribution",
"operation": "distribute",
"buildId": "={{ $('Trigger Build').item.json.id }}",
"destinations": ["Beta Testers"]
}
}
]
}Analytics Report
{
"name": "Weekly Analytics Report",
"nodes": [
{
"name": "Get Sessions",
"type": "n8n-nodes-appcenter.appCenter",
"parameters": {
"resource": "analytics",
"operation": "getSessions",
"start": "={{ $now.minus(7, 'days').toISO() }}",
"interval": "P1D"
}
},
{
"name": "Get Crash-Free Users",
"type": "n8n-nodes-appcenter.appCenter",
"parameters": {
"resource": "crashes",
"operation": "getCrashFreeUsers",
"start": "={{ $now.minus(7, 'days').toISO() }}"
}
}
]
}App Center Concepts
Owner Types
- User: Individual account owner
- Organization: Team or company account
Token Types
- User API Token: Full access across all apps the user can access
- App API Token: Scoped to a single application
Build Triggers
- Manual: Triggered via API or UI
- Continuous: Triggered on every push
- Tag: Triggered when tags are pushed
Distribution Destinations
- Groups: Internal distribution groups
- Stores: App Store Connect, Google Play, Intune
- Testers: Individual email addresses
Test Frameworks
- Appium: Cross-platform testing
- Calabash: Cucumber-based testing
- Espresso: Android native testing
- XCUITest: iOS native testing
- Xamarin.UITest: Xamarin testing
Error Handling
The node handles App Center API errors gracefully:
| Error Code | Description | |------------|-------------| | 400 | Bad Request - Invalid parameters | | 401 | Unauthorized - Invalid API token | | 403 | Forbidden - Insufficient permissions | | 404 | Not Found - Resource doesn't exist | | 409 | Conflict - Resource already exists | | 429 | Too Many Requests - Rate limit exceeded |
Rate Limits
App Center enforces the following rate limits:
- 2000 requests per 5-minute window
- Headers:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset
Security Best Practices
- Use App API Tokens instead of User tokens when possible
- Set Read Only access for monitoring-only workflows
- Store credentials securely in n8n credential storage
- Rotate API tokens periodically
- Use separate tokens for different workflows
Development
# Install dependencies
npm install
# Build the project
npm run build
# Run linting
npm run lint
# Run tests
npm test
# Run tests with coverage
npm run test:coverageAuthor
Velocity BPA
- Website: velobpa.com
- GitHub: Velocity-BPA
Licensing
This n8n community node is licensed under the Business Source License 1.1.
Free Use
Permitted for personal, educational, research, and internal business use.
Commercial Use
Use of this node within any SaaS, PaaS, hosted platform, managed service, or paid automation offering requires a commercial license.
For licensing inquiries: [email protected]
See LICENSE, COMMERCIAL_LICENSE.md, and LICENSING_FAQ.md for details.
Contributing
Contributions are welcome! Please ensure all contributions comply with the BSL 1.1 license terms.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
npm test - Submit a pull request
Support
- Issues: GitHub Issues
- Documentation: App Center API Docs
- n8n Community: n8n Community Forum
Acknowledgments
- Microsoft App Center for their comprehensive mobile DevOps platform
- n8n for the workflow automation platform
- The n8n community for their support and contributions
