Zapier Integration

ProfilePulse API Documentation

API reference for the ProfilePulse Zapier integration — authentication, endpoints, request/response shapes, and errors.

Authentication

All requests authenticate with an API key sent as a Bearer token.

Authorization: Bearer <YOUR_API_KEY>

No additional payment or plan is required to obtain or use the API key.

Endpoint 1 — List Business Profiles

Used to populate the Business Profile dropdown in the Zapier action.

GET /api/v1/business/profile

Headers

Authorization: Bearer <YOUR_API_KEY>

Sample request

curl -X GET "https://api.profilepulse.io/api/v1/business/profile" \
  -H "Authorization: Bearer 1a2b3c...<64 hex>...f9"

Sample response 200 OK

{
  "success": true,
  "message": "Profiles fetched",
  "data": [
    {
      "_id": "6612a0f3e1b2c3d4e5f60718",
      "title": "Gujarat Web & App Studio",
      "slug": "gujarat-web-app-studio"
    },
    {
      "_id": "6612a14ce1b2c3d4e5f6071a",
      "title": "Urban Health Clinic",
      "slug": "urban-health-clinic"
    }
  ]
}

Each profile's _id is the value used as profileId in the next endpoint; title is shown as the dropdown label.

Endpoint 2 — Send Review Request

Sends a review-request message (email and/or SMS) to a customer for the given business profile. This is the Zapier action "Send Review Request".

POST /api/v1/business/profile/{profileId}/review-request

Path parameters

Name Type Required Description
profileId string yes The business profile _id from Endpoint 1.

Headers

Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json

Body fields

Field Type Required Description
customerName string yes Customer's name.
customerEmail string cond. Customer email. Email or mobile required (≥ 1).
customerMobile string cond. Customer mobile. Email or mobile required (≥ 1).

At least one of customerEmail or customerMobile must be provided.

Sample request

curl -X POST \
  "https://api.profilepulse.io/api/v1/business/profile/6612a0f3e1b2c3d4e5f60718/review-request" \
  -H "Authorization: Bearer 1a2b3c...<64 hex>...f9" \
  -H "Content-Type: application/json" \
  -d '{
        "customerName": "John Doe",
        "customerEmail": "john@example.com",
        "customerMobile": "+919876543210"
      }'

Sample response 200 OK

{
  "success": true,
  "message": "Review request sent",
  "data": {
    "_id": "6613bd02e1b2c3d4e5f6082c",
    "businessId": "6612a0f3e1b2c3d4e5f60718",
    "customerName": "John Doe",
    "customerEmail": "john@example.com",
    "customerMobile": "+919876543210",
    "contactType": "both",
    "status": "sent",
    "createdAt": "2026-06-02T10:00:00.000Z"
  }
}

If a request to the same customer already exists (and didn't previously fail), the existing record is returned instead of sending a duplicate.

Errors

Errors return a JSON body with success: false and a message.

HTTP When
400 Missing customerName, or no valid email/mobile provided.
401 Missing or invalid API key.
404 Business profile not found for the given profileId.
500 Sending failed (e.g. email/SMS provider error).

Sample error 400 Bad Request

{
  "success": false,
  "message": "Customer name and contact are required"
}

Notes for Zapier reviewers