AACsearch
Conectores y Widget

Zapier — connect and automate

[TODO i18n — see issue #76] "Automate data ingestion from any app into AACsearch with Zapier. Thousands of supported apps."

Zapier — connect and automate

Zapier lets you automatically push data from popular apps (Google Sheets, Shopify, Stripe, Mailchimp, and others) into AACsearch — no code required.

What is Zapier? Zapier is a service that connects different apps and automates workflows. For example, when a new row is added to Google Sheets, Zapier can automatically load that product into AACsearch.

Requirements

  • A Zapier account (free or paid)
  • An AACsearch account with an index created
  • An API key for ingestion (scope ingest)

Step 1: Create an ingest API key

In AACsearch create a dedicated key for Zapier:

  1. Open Search → API keys
  2. Click Create key
  3. Name it: Zapier Integration
  4. Pick scope: Ingest (for uploading documents)
  5. Pick the index: products (or another)
  6. Click Create
  7. Copy the key and store it (it will not be shown again)

The key looks like: ss_ingest_abc123def456

Never share this key. Store it only inside Zapier or in a secure location.

Step 2: Create a Zap in Zapier

Open Zapier and create a new Zap

  1. Go to zapier.com
  2. Click Create
  3. Pick ZapCreate a new Zap

Pick a trigger (the event that starts the action)

A trigger is the event that starts the automation. Pick one of the options:

Option 1: Google Sheets (recommended)

  • App: Google Sheets
  • Trigger: New Spreadsheet Row
  • Pick the Google account
  • Pick the spreadsheet with products

Option 2: Shopify

  • App: Shopify
  • Trigger: New Product
  • Pick your Shopify store

Option 3: Stripe

  • App: Stripe
  • Trigger: New Product
  • Pick the Stripe account

Option 4: WooCommerce

  • App: WooCommerce
  • Trigger: New Product
  • Provide your store URL and API keys

After picking the trigger click Continue.

Test the trigger

Zapier will ask you to test the trigger:

  1. Click Test Trigger
  2. Zapier will pull data from your source (a row from Google Sheets, a product from Shopify, etc.)
  3. You will see a sample payload
  4. Click Continue if the data looks right

Step 3: Pick the action (what Zapier does)

The action is what Zapier should do when the trigger fires.

  1. Click +Action
  2. Find and pick Webhooks by Zapier (in case AACsearch is not in the list yet)
  3. Action: POST
  4. Click Continue

Step 4: Configure the webhook to load into AACsearch

Fill the request fields

FieldWhat to enter
URLhttps://app.aacsearch.com/api/v1/indexes/{INDEX_ID}/documents
MethodPOST
Data Pass-ThroughOff

Where to find INDEX_ID

  1. In AACsearch open Search → Indexes
  2. Click the index you need
  3. In the browser URL you will see: https://app.aacsearch.com/[ORG]/search/[INDEX_ID]
  4. Copy INDEX_ID

Example URL:

https://app.aacsearch.com/api/v1/indexes/65f8d2e1c9a2b3f4e5g6h7i8/documents

Add headers

Click + Add Header and add two headers:

HeaderValue
AuthorizationBearer ss_ingest_abc123def456 (your API key)
Content-Typeapplication/json

Add the request body

Open the Body tab and pick the JSON format.

Build the document array depending on your source:

For Google Sheets:

[
  {
    "id": "row_123",
    "title": {{ 65f8d2e1c9a2b3f|Column_1 }},
    "description": {{ 65f8d2e1c9a2b3f|Column_2 }},
    "price": {{ 65f8d2e1c9a2b3f|Column_3 }},
    "category": {{ 65f8d2e1c9a2b3f|Column_4 }}
  }
]

For Shopify:

[
  {
    "id": {{ 65f8d2e1c9a2b3f|Product_ID }},
    "title": {{ 65f8d2e1c9a2b3f|Product_Title }},
    "description": {{ 65f8d2e1c9a2b3f|Product_Body_HTML }},
    "price": {{ 65f8d2e1c9a2b3f|Product_Price }},
    "category": {{ 65f8d2e1c9a2b3f|Product_Type }},
    "image": {{ 65f8d2e1c9a2b3f|Product_Image_URL }}
  }
]

For WooCommerce:

[
  {
    "id": "{{ 65f8d2e1c9a2b3f|Product_ID }}",
    "title": "{{ 65f8d2e1c9a2b3f|Product_Title }}",
    "description": "{{ 65f8d2e1c9a2b3f|Product_Description }}",
    "price": {{ 65f8d2e1c9a2b3f|Product_Price }},
    "category": "{{ 65f8d2e1c9a2b3f|Product_Category }}"
  }
]

Numbers (price) go WITHOUT quotes around {{ }}, text fields (title) keep the quotes.

Step 5: Test the webhook

  1. Click Test Action
  2. Zapier will send a test request to AACsearch
  3. If it errors, double-check:
    • ✓ The API key is copied correctly (no extra spaces)
    • ✓ The URL has the correct INDEX_ID
    • ✓ Both headers are filled (Authorization, Content-Type)
    • ✓ The JSON is valid (use jsonlint.com to verify)

A successful response looks like:

{
  "documentCount": 1,
  "status": "queued"
}

Step 6: Turn on the Zap

  1. Give the Zap a name (e.g. Google Sheets → AACsearch)
  2. Click Publish
  3. Zapier will run this Zap on every new trigger

Integration examples

Google Sheets → AACsearch

When a new row is added to Google Sheets Then the product is loaded into AACsearch

Sheet structure:
| Title    | Description       | Price | Category |
|----------|-------------------|-------|----------|
| Sneakers | Sport shoes       | 5000  | Footwear |
| Shirt    | Cotton shirt      | 3000  | Apparel  |

Zap structure:

  1. Trigger: Google Sheets → New row
  2. Action: Webhooks → POST to AACsearch

Shopify → AACsearch (sync every 5 minutes)

When a new product is created in Shopify Then the product is loaded into AACsearch

Settings:

  • Schedule: Every 5 minutes
  • Trigger: Shopify → New product
  • Filter: Only products with price > 0
  • Action: Webhooks → POST

Stripe customers → AACsearch

When a new customer is added in Stripe Then the customer is loaded into the "customers" index

Body:
[
  {
    "id": "{{ 65f8d2e1c9a2b3f|Customer_ID }}",
    "name": "{{ 65f8d2e1c9a2b3f|Customer_Name }}",
    "email": "{{ 65f8d2e1c9a2b3f|Customer_Email }}",
    "created_at": "{{ 65f8d2e1c9a2b3f|Created_At }}"
  }
]

Mailchimp subscribers → AACsearch

When a new subscriber is added in Mailchimp Then the subscriber is loaded into the "subscribers" index

Body:
[
  {
    "id": "{{ 65f8d2e1c9a2b3f|Subscriber_ID }}",
    "email": "{{ 65f8d2e1c9a2b3f|Email }}",
    "name": "{{ 65f8d2e1c9a2b3f|First_Name }} {{ 65f8d2e1c9a2b3f|Last_Name }}",
    "status": "{{ 65f8d2e1c9a2b3f|Status }}"
  }
]

Advanced features

Updating existing documents

If a document with the same id already exists, it will be updated:

[
  {
    "id": "product_123",
    "title": "New product name",
    "price": 6000
  }
]

AACsearch will update the product instead of creating a duplicate.

Filtering data before ingestion

You can add a Zapier filter to load only specific products:

  1. Between Trigger and Action add a Filter
  2. Condition: Price > 100 or Category = "Footwear"
  3. Only items matching the condition are loaded

Schedule instead of real-time

If you don't need real-time sync, use a schedule:

  1. In Trigger pick Schedule instead of an app trigger
  2. Frequency: Every day at 9am
  3. The action will run on schedule

Monitoring and debugging

Check Zap logs

  1. In Zapier open your Zap
  2. Switch to the Run history tab
  3. Click a run
  4. You will see the input data, the request, and the response

Common errors

ErrorCauseFix
401 UnauthorizedWrong API keyRe-copy the key from AACsearch
404 Not FoundWrong INDEX_IDCheck the URL in your browser
400 Bad RequestInvalid JSONValidate the syntax at jsonlint.com
429 Too Many RequestsToo many requestsAdd a delay between runs or use a schedule

Enable logging

For debugging complex Zaps add a Formatter before the Action:

  1. Between Trigger and Action add ActionFormatter
  2. Event: Text → JSON
  3. Input: (your JSON)
  4. This helps you see how the data is transformed

Zapier limits

LimitFree planPaid plan
Tasks per month100Depends on plan
SpeedAt least 1 minute between runsReal-time
History7 days90 days
ZapsUp to 5 ZapsUnlimited

If you exceed the limit, Zapier will pause your Zap. Upgrade for more headroom.

Alternatives to Zapier

If Zapier is not for you, try one of these alternatives:

  • Make (Integromat) — more powerful and cheaper
  • Integrately — easier for beginners
  • Pabbly Connect — the cheapest
  • Custom script — Python, Node.js, or Go for full control

Frequently asked questions

Q: Do I need Zapier for sync? A: No. If you are a developer you can write your own script in Python or Node.js. Zapier is for non-technical users.

Q: Can I update existing products via Zapier? A: Yes. Sending a document with the same id updates it.

Q: How often does Zapier check for updates? A: Free plan — every 15 minutes. Paid plans — every 1–5 minutes (depending on the plan).

Q: What if the source has a different structure? A: Use Formatter in Zapier to transform the data into the expected shape.

Q: Can I upload images via Zapier? A: Yes, by sending the image URL in the image field. AACsearch will download and store the image automatically.

Q: How do I delete products from AACsearch via Zapier? A: Use a DELETE request instead of POST. URL: https://app.aacsearch.com/api/v1/indexes/{INDEX_ID}/documents/{DOC_ID}.

Help and support

On this page