> For the complete documentation index, see [llms.txt](https://docs.pullbay.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pullbay.com/documentation/integrations/pullbay-x-n8n-integration.md).

# Pullbay x n8n Integration

n8n is a powerful open-source and cloud-based workflow automation platform that lets you build complex data pipelines without writing code. This guide shows you how to integrate Pullbay with n8n to automate App Store data collection, monitoring, and analysis workflows.

## What is n8n?

n8n is a visual workflow automation tool that connects APIs, databases, and applications through a drag-and-drop interface. You can:

* Build complex data pipelines without coding
* Schedule recurring workflows (daily, hourly, weekly, etc.)
* Connect to 400+ apps and services (Google Sheets, Slack, Airtable, etc.)
* Transform and process data between systems
* Trigger workflows based on events or schedules

With Pullbay integration, n8n becomes a powerful tool for automating App Store data collection and analysis.

## Why Use n8n with Pullbay?

### No-Code Integration

Build workflows without any programming knowledge. Use the visual workflow builder to connect Pullbay with other services.

### Seamless Integration with Business Tools

Connect Pullbay data directly to:

* **Google Sheets** - Automatically populate spreadsheets with review data
* **Slack** - Send alerts when reviews drop below certain ratings
* **Airtable** - Store structured review data for team collaboration
* **Webhooks** - Trigger actions in your own applications
* **Databases** - Write data directly to PostgreSQL, MySQL, or other databases

### Managed Pagination

Use the `/reviews/all` endpoint which automatically fetches all data in a single request. No need to handle pagination loops—the API does it for you internally.

### Scheduled Execution

Configure workflows to run on a schedule:

* Daily reviews collection at midnight
* Hourly monitoring for critical feedback
* Weekly competitive analysis reports

### Error Handling and Reliability

n8n includes built-in error handling, retry logic, and notifications so you know when something goes wrong.

## Setup: Storing Your API Key

Before creating workflows, store your Pullbay API key as a credential in n8n.

{% stepper %}
{% step %}

### Access Credentials

1. Log in to n8n
2. Click **Credentials** in the left sidebar
3. Click **Create New** to add a new credential
   {% endstep %}

{% step %}

### Create Header Authentication Credential

1. Select **Header Auth** from the credential type dropdown
2. Fill in the following details:

| Field               | Value                 |
| ------------------- | --------------------- |
| **Credential Name** | `Pullbay API`         |
| **Header Name**     | `Authorization`       |
| **Header Value**    | `Bearer YOUR_API_KEY` |

3. Replace `YOUR_API_KEY` with your actual API key from the Pullbay dashboard
4. Click **Create**

Now your Pullbay API credential is stored securely and can be reused across all workflows.
{% endstep %}
{% endstepper %}

## HTTP Request Node Configuration

All Pullbay workflows use the **HTTP Request** node. Here's the standard configuration:

| Setting              | Value                                              |
| -------------------- | -------------------------------------------------- |
| **Method**           | GET                                                |
| **URL**              | `https://api.pullbay.com/v1/app-store/reviews/all` |
| **Authentication**   | Header Auth (select your "Pullbay API" credential) |
| **Query Parameters** | See examples below                                 |

### Query Parameters

Pass parameters as query parameters in the HTTP Request node:

| Parameter     | Value                              | Notes                               |
| ------------- | ---------------------------------- | ----------------------------------- |
| `app_id`      | Your app ID                        | Required. Example: `284882215`      |
| `country`     | Country code                       | Optional. Default: `us`             |
| `sort`        | `recent`, `helpful`, or `critical` | Optional. Default: `recent`         |
| `max_results` | Number or omit                     | Optional. Omit to fetch all results |

## Important: Always Use Managed Pagination in n8n

**Always use the `/reviews/all` endpoint in n8n, not the standard `/reviews` endpoint.**

### Why?

1. **Single Request** - `/reviews/all` returns all results in one API call, while `/reviews` requires managing pagination with cursors
2. **Simplified Workflows** - No need for pagination loops or cursor handling in n8n
3. **Prevents Infinite Loops** - Standard pagination requires complex workflow logic; managed pagination handles this automatically
4. **Credit Efficiency** - You only make one request instead of multiple paginated requests
5. **Guaranteed Completion** - All results are fetched internally and returned in a single response

The managed pagination endpoint was specifically designed for automation workflows like n8n.

## Basic Workflow Structure

Every Pullbay workflow in n8n follows this pattern:

```
[Trigger] → [Pullbay HTTP Request] → [Data Processing] → [Destination]
```

1. **Trigger**: Schedule, webhook, or manual start
2. **HTTP Request Node**: Fetch data from Pullbay
3. **Data Processing**: Transform/filter data as needed
4. **Destination**: Send data to Google Sheets, Slack, database, etc.

## Example Workflows

### Workflow 1: Daily Review Collection to Google Sheets

Automatically fetch app reviews every day at 9 AM and save them to Google Sheets.

{% stepper %}
{% step %}

### Trigger

* Add a Schedule node
* Trigger type: Every day
* Trigger at: 9:00 AM
  {% endstep %}

{% step %}

### HTTP Request

Fetch reviews from Pullbay.

* Method: GET
* URL: `https://api.pullbay.com/v1/app-store/reviews/all`
* Authentication: Pullbay API (Header Auth)
* Query Parameters:
  * `app_id`: 284882215
  * `country`: us
  * `sort`: recent
    {% endstep %}

{% step %}

### Set Node

* Value: `{{ $json.data }}`
* This extracts just the reviews array from the response
  {% endstep %}

{% step %}

### Google Sheets

* Append rows
* Document: Your Google Sheets doc
* Sheet: "Reviews"
* Columns: author, rating, title, content, date, version, helpful\_count
  {% endstep %}

{% step %}

### Notification

* Add Slack or email node to notify you when complete
  {% endstep %}
  {% endstepper %}

#### Expected Outcome

Your Google Sheets document gets updated every morning with the latest reviews, creating a historical record of app feedback.

### Workflow 2: Review Monitoring with Slack Alerts

Hourly monitoring that sends Slack alerts when critical reviews appear (rating ≤ 2).

{% stepper %}
{% step %}

### Trigger

* Add a Schedule node
* Trigger type: Every hour
* Trigger at: Every hour
  {% endstep %}

{% step %}

### HTTP Request

Fetch reviews.

* Method: GET
* URL: `https://api.pullbay.com/v1/app-store/reviews/all`
* Authentication: Pullbay API
* Query Parameters:
  * `app_id`: 284882215
  * `country`: us
  * `sort`: critical
    {% endstep %}

{% step %}

### Set Node

* Value: `{{ $json.data }}`
  {% endstep %}

{% step %}

### If Node

* Condition: `rating` ≤ 2
* True branch: Continue to Slack
  {% endstep %}

{% step %}

### Split In Batches

* Batch size: 1
* This lets us send individual Slack messages
  {% endstep %}

{% step %}

### Slack

Send message:

```
🚨 Critical Review Alert
Author: {{ $json.author }}
Rating: {{ $json.rating }} stars
Title: {{ $json.title }}
Content: {{ $json.content }}
```

{% endstep %}

{% step %}

### Complete

{% endstep %}
{% endstepper %}

#### Expected Outcome

You get instant Slack notifications when reviews with 1 or 2 stars are posted, allowing your team to respond quickly to critical feedback.

### Workflow 3: Competitive Analysis (Multiple Apps, Weekly)

Monitor 3 competitor apps and compile findings into a weekly report.

{% stepper %}
{% step %}

### Trigger

* Schedule
* Every Monday at 9:00 AM
  {% endstep %}

{% step %}

### Loop Through Apps

(using JavaScript/Set nodes)

* Apps to monitor: Facebook (284882215), Instagram (389801252), WhatsApp (310633997)
  {% endstep %}

{% step %}

### HTTP Request

For each app:

* Fetch reviews using `/reviews/all`
* Parameters:
  * `app_id`: (varies per app)
  * `country`: us
  * `max_results`: 100
    {% endstep %}

{% step %}

### Data Transformation

Create summary:

* app name
* total review count
* average rating
* top themes

Using Aggregate or JavaScript nodes
{% endstep %}

{% step %}

### Google Sheets

Write summary report and create new row with:

* Date
* App name
* Average rating
* Review count
* Key themes
  {% endstep %}

{% step %}

### Slack Notification

* Send weekly summary to your product team
  {% endstep %}
  {% endstepper %}

#### Expected Outcome

Every Monday, your team receives a competitive intelligence report showing how competitor apps are being reviewed and perceived.

### Workflow 4: Sentiment Analysis Pipeline with OpenAI

Fetch reviews and automatically analyze sentiment using OpenAI's GPT model.

{% stepper %}
{% step %}

### Trigger

* Daily schedule
* Every day at midnight
  {% endstep %}

{% step %}

### HTTP Request

Fetch reviews.

* URL: `https://api.pullbay.com/v1/app-store/reviews/all`
* Query parameters:
  * `app_id`: 284882215
  * `sort`: recent
  * `max_results`: 50
    {% endstep %}

{% step %}

### Set Node

* Value: `{{ $json.data }}`
  {% endstep %}

{% step %}

### Split In Batches

* Batch size: 1
  {% endstep %}

{% step %}

### OpenAI

Analyze sentiment with this prompt:

```
Analyze the sentiment of this app review. Respond with:
- Sentiment: positive, negative, or neutral
- Score: -1 to 1
- Key topics mentioned

Review: {{ $json.content }}
```

{% endstep %}

{% step %}

### Airtable

Store results.

* Review text
* Original rating
* AI sentiment
* AI score
* Key topics
* Analysis date
  {% endstep %}

{% step %}

### Notification

* Alert when negative sentiment exceeds threshold
  {% endstep %}
  {% endstepper %}

#### Expected Outcome

Build a database of reviews with AI-powered sentiment analysis, identifying trends and emotional patterns in customer feedback.

## Handling Response Data in n8n

The Pullbay API returns data in a standard JSON structure. Extract the reviews array using the **Set** node:

```
{{ $json.data }}
```

This expression:

* Accesses the response JSON object
* Extracts the `data` array containing all reviews
* Passes the array to the next node in your workflow

### Accessing Individual Fields

In subsequent nodes, access review fields like:

* `{{ $json.author }}` - Reviewer's username
* `{{ $json.rating }}` - Star rating (1-5)
* `{{ $json.title }}` - Review title
* `{{ $json.content }}` - Review content
* `{{ $json.date }}` - Review date (ISO 8601)
* `{{ $json.helpful_count }}` - Helpful votes

## Error Handling

Robust workflows include error handling to catch API failures and network issues.

### Configure Timeout

For the HTTP Request node:

1. Click **Additional options** (in the node settings)
2. Set **Timeout** to `120000` milliseconds (2 minutes)
3. This gives the managed pagination endpoint time to fetch all pages

### Enable Retry Logic

1. In the HTTP Request node settings
2. Enable **Continue On Fail**
3. Enable **Retry On Fail**
4. Set retry attempts to 3

### Add Error Handler

Add an error handler node after the HTTP Request:

1. Create a separate path for errors
2. Send notifications (Slack, email) when API calls fail
3. Log errors to a monitoring system

Example Slack error message:

```
⚠️ Pullbay API Error
Status: {{ $json.statusCode }}
Message: {{ $json.message }}
Timestamp: {{ new Date().toISOString() }}
```

## Tips and Best Practices

### Test with max\_results First

When building workflows, test with a limited result set:

```
?app_id=284882215&max_results=10
```

Once your workflow is working correctly, remove the `max_results` parameter to fetch all available reviews.

### Monitor Credit Usage

Each workflow execution consumes credits (1 per page fetched). To avoid unexpected credit depletion:

* Schedule workflows during off-peak times if possible
* Use `max_results` to limit data in initial tests
* Monitor your credit balance in the Pullbay dashboard
* Set up credit alerts if approaching your limit

### Schedule During Off-Peak Hours

Pullbay processing is fastest during off-peak hours (typically 10 PM to 6 AM). Schedule heavy workflows during these times to improve performance.

### Deduplicate Reviews

If running frequent workflows, implement deduplication logic:

1. Track review IDs locally or in a database
2. Skip reviews already processed
3. Use the `date` field to fetch only new reviews since last run

Example: Set `max_results` conservatively, then filter by date in n8n:

```
Filter: date > {{ workflow.lastRunTime }}
```

### Split Large Datasets

If fetching thousands of reviews, use the **Split In Batches** node:

1. Add Split In Batches node after Set node
2. Set batch size to 10-50 (depending on downstream processing)
3. Process each batch individually
4. This prevents memory issues and allows per-batch error handling

## FAQ

<details>

<summary>Why should I use /all endpoints in n8n?</summary>

The `/all` endpoint (managed pagination) automatically handles pagination internally and returns all results in a single API call. This prevents pagination loops and complex cursor handling in n8n workflows. The standard `/reviews` endpoint requires manual pagination with cursors, which is more complex in no-code workflows.

</details>

<details>

<summary>How do I set the timeout for managed endpoints?</summary>

In the HTTP Request node, click **Additional options** and set the **Timeout** field to `120000` milliseconds (2 minutes). This gives the managed pagination endpoint sufficient time to fetch all pages internally before returning.

</details>

<details>

<summary>Can I process individual reviews in n8n?</summary>

Yes. After fetching the complete response, add a **Split In Batches** node set to batch size 1. This processes each review individually, allowing you to perform actions per review (send to Slack, analyze with OpenAI, etc.).

</details>

<details>

<summary>What if a workflow fails?</summary>

Check the execution logs in n8n (click the execution history). Most failures are due to:

* Invalid `app_id` - verify the app ID is correct
* Rate limiting - add retry logic
* Timeout - increase the timeout setting
* Authentication - verify your API key is correct in the credential

</details>

<details>

<summary>Can I test my workflow without using credits?</summary>

Yes. Use the **Test** button in n8n to do a test run. This uses your actual API key but only executes the workflow once. It's a good way to validate before scheduling.

</details>

<details>

<summary>How often should I run workflows?</summary>

It depends on your needs:

* **Real-time monitoring**: Hourly or every 30 minutes
* **Daily reports**: Once daily (typically overnight)
* **Weekly analysis**: Once per week
* **Competitive monitoring**: Several times per week

Higher frequency = more credits. Balance your monitoring needs with credit usage.

</details>

<details>

<summary>Can I run the same workflow on multiple apps?</summary>

Yes. Use a **Loop** node or multiple HTTP Request nodes to fetch data for different apps:

1. Add a loop that iterates through your app IDs
2. For each app ID, make an HTTP Request to Pullbay
3. Combine and process results

</details>

## Troubleshooting

### "401 Unauthorized" Error

**Cause**: Invalid or missing API key\
**Fix**:

1. Verify your API key in the Pullbay dashboard
2. Re-create the credential with the correct key
3. Ensure the credential is selected in the HTTP Request node

### "404 Not Found" Error

**Cause**: Invalid endpoint or app ID\
**Fix**:

1. Verify the app ID is correct and numeric
2. Double-check the endpoint URL is exactly `https://api.pullbay.com/v1/app-store/reviews/all`
3. Ensure query parameters are spelled correctly

### Workflow Runs Slow or Times Out

**Cause**: Timeout too short, too many concurrent requests, or very large result sets\
**Fix**:

1. Increase the timeout to 120000ms
2. Reduce frequency of workflows
3. Use `max_results` to limit data fetched
4. Schedule during off-peak hours

### No Data Being Returned

**Cause**: Wrong country code, invalid sort parameter, or app with no reviews\
**Fix**:

1. Verify `app_id` is correct and has reviews
2. Check `country` code is valid (us, gb, de, fr, etc.)
3. Verify `sort` is `recent`, `helpful`, or `critical`
4. Test the API request in Postman or cURL first

## Next Steps

* [**App Store API Reference**](broken://pages/d1a7458aef47c466a5a3e40cf829f0231eaeac59): Full endpoint documentation and parameters
* [**Integration Guide**](broken://pages/171735c0e70d77e1453d0ff959fdd06c2641c41d): Backend integration patterns for developers
* [**n8n Marketplace**](https://n8n.io/workflows): Explore pre-built workflows to extend these examples
* [**Pullbay Dashboard**](https://app.pullbay.com/): Monitor credit usage and API activity

For n8n support, visit [docs.n8n.io](https://docs.n8n.io/). For Pullbay-specific questions, contact support through your dashboard.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pullbay.com/documentation/integrations/pullbay-x-n8n-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
