npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gre4ixin/n8n-nodes-appstore-connect

v1.0.1

Published

n8n community node for Apple App Store Connect API — manage apps, TestFlight, reviews, and sales reports

Readme

n8n-nodes-appstore-connect

An n8n community node for the Apple App Store Connect API.

Automate app management, TestFlight beta testing, customer review responses, and sales reporting from your n8n workflows.

npm License: MIT


Supported Operations

| Resource | Operations | |---|---| | App | Get, Get All | | App Store Version | Get, List | | Customer Review | List, Get Response, Create Response, Update Response, Delete Response | | TestFlight | List Beta Groups, List Beta Testers, Create Beta Tester, Add Tester to Group, Remove Tester from Group, List Builds | | Sales Report | Download Sales Report, Download Finance Report |


Installation

From n8n UI (recommended)

Go to Settings > Community Nodes and install:

@gre4ixin/n8n-nodes-appstore-connect

Self-hosted (npm)

npm install @gre4ixin/n8n-nodes-appstore-connect

Authentication

This node uses App Store Connect API Keys (JWT-based authentication with ES256 signing).

Setup Steps

  1. In App Store Connect, go to Users and Access > Integrations > App Store Connect API
  2. Click + to generate a new Team Key. Download the .p8 file — it can only be downloaded once
  3. Note your Issuer ID (shown at the top of the Keys page) and the Key ID next to your new key
  4. In n8n, create a new App Store Connect API credential:
    • Issuer ID: from step 3
    • Key ID: from step 3
    • Private Key: paste the full contents of your .p8 file, including the -----BEGIN PRIVATE KEY----- header and -----END PRIVATE KEY----- footer

Tip — copy .p8 contents to clipboard in one command:

# macOS
cat AuthKey_XXXXXXXXXX.p8 | pbcopy

# Linux
cat AuthKey_XXXXXXXXXX.p8 | xclip -selection clipboard

# Windows (PowerShell)
Get-Content AuthKey_XXXXXXXXXX.p8 | Set-Clipboard

Required API Key Roles

Different operations require different App Store Connect API key roles:

| Feature | Minimum Role | |---|---| | Read apps, versions, builds | Developer | | TestFlight management | App Manager | | Respond to reviews | Admin ⚠️ | | Download sales reports | Sales | | Download finance reports | Finance |

⚠️ Note: The "Customer Support" role cannot be assigned to API keys despite appearing in Apple's documentation. To respond to reviews, your API key must have the Admin role.


Usage Examples

Monitor negative reviews and send Slack alerts:

Schedule Trigger (every hour)
  → App Store Connect: Get All Apps
  → App Store Connect: List Reviews (filter: rating 1-2, sort: most recent)
  → Slack: Post Message

Add new employee to internal TestFlight group:

Webhook (new employee onboarded)
  → App Store Connect: Create Beta Tester (email, firstName, lastName)
  → App Store Connect: Add Tester to Group (betaGroupId, testerId from previous step)

Daily sales report to Google Sheets:

Schedule Trigger (daily at 10:00)
  → App Store Connect: Download Sales Report (DAILY, SALES, SUMMARY, yesterday's date)
  → Code (parse TSV rows)
  → Google Sheets: Append Rows

Track build processing status:

Schedule Trigger (every 5 minutes)
  → App Store Connect: List Builds (filter: processingState = PROCESSING)
  → IF (count > 0)
    → Slack: Notify "Builds still processing: {{$json.count}}"

Sales Reports Notes

  • Sales and Finance reports are returned as binary TSV files (auto-decompressed from gzip)
  • Use the n8n Code node to parse the TSV content: $binary.data → split by newline → split by \t
  • Daily reports are typically available within 24 hours after the reporting period ends
  • Finance reports are available around the 15th of the following month
  • If a report is not yet available, the node returns { available: false, message: "..." } instead of an error — ideal for polling workflows

Resources


Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run dev

# Lint
npm run lint

# Test locally with n8n
npm link
cd ~/.n8n/nodes
npm link @gre4ixin/n8n-nodes-appstore-connect
npx n8n start

License

MIT