Make receives store events with the Webhooks → Custom webhook module, and calls the store with HTTP → Make a request. Both are available on Make's free plan.
1. Paid order → Google Sheets row
Catch the event
- In Make, create a scenario. Add the Webhooks app, module Custom webhook.
- Click Add, name it "nopCommerce orders", and save. Make shows the webhook address: copy it. Make now waits for a first message to learn the fields.
- In the store's admin, open Configuration → Integration Hub → Webhooks → Add webhook and choose
Zapier, Make or n8n.
- Name: "Make: orders to Sheets"
- URL: the address you copied
- Events: only
order.paid - Save.
- Send a sample: open Preview, choose
order.paid, an order and the Make webhook, click Show message and then Send to this webhook. Make shows "Successfully determined".
Add the row
Add Google Sheets → Add a Row. Connect your Google account, and choose the spreadsheet and sheet. Turn on Table contains headers so the columns appear by name.
Map the columns from the webhook's bundle:
Column Make value Order data→numberDate data→createdOnUtcCustomer data→customer→firstName, a space,lastNameEmail data→customer→emailTotal data→totals→totalItems join(map(data.items; "sku"); ", ")Click Run once, send another sample from Preview, and check the row. Then turn the scenario on.
2. New order → Slack message
A second scenario with its own webhook and order.placed, then Slack → Create a Message:
- Channel: #orders
- Text:
New order {{data.number}}: {{data.totals.total}} {{data.currency}} from {{data.customer.firstName}} {{data.customer.lastName}}. {{data.adminUrl}}(choose the items from the mapping panel instead of typing them)
3. Calling the store from a scenario
In the store's admin, add an API key under API keys with only the scopes the scenario needs.
Add HTTP → Make a request:
- URL:
https://shop.example.com/api/cartenvo/v1/stock - Method: POST
- Headers:
Authorization=Bearer cih_… - Body type: Raw, Content type: JSON (application/json)
- Request content:
{"lines": [{"sku": "{{sku}}", "quantity": {{quantity}}}], "dryRun": true} - Parse response: Yes
The answer says, for each line, whether it was updated, unchanged or failed. Remove
"dryRun": trueonce it's right. Up to 1,000 lines go in one call: build thelinesarray with an Array aggregator to send a whole sheet at once.- URL:
The API guide lists every call.
Things to know
- Keep the webhook address private. Make's Custom webhook doesn't check the store's signature. Under the webhook's Advanced settings you can limit it to the store's IP address.
- Repeats: the store retries a delivery Make doesn't confirm. Use the message's
id(the same on retries) with a Data store to skip repeats where that matters. - Samples: messages from Send to this webhook have
context.sample= true. Add a filter after the webhook if a live scenario mustn't act on them.