Direct WooCommerce connection · 8 min read
How to automate review requests for completed WooCommerce orders
Written by Mannie Gill, Founder & Lead Developer at EmbedMyReviews. LinkedInPublished
Use EMR’s WooCommerce automation to add buyers to a review campaign when an order is marked Completed. The store owner creates a Read/Write REST API key; EMR uses it to create the order webhook. You do not install another WordPress plugin or build a Zap.
TL;DR
The short version
- Completed is the trigger. Processing and On hold orders do not qualify.
- The store needs HTTPS, a Read/Write key and a buyer email.
- Choose this only when Completed means the customer has received the experience you want reviewed.
What happens automatically?
- 01
Order becomes Completed
- 02
EMR waits from completion time
- 03
The campaign sends to the buyer
Choose this when: An agency manages a WooCommerce store whose completion status is used consistently after service, collection or delivery.
Choose another route when: A store that marks orders Completed before dispatch but needs proof of delivery. The native delay is at most 24 hours after completion.
Who does what?
The business owner
Confirms what Completed means in the store, creates the API credentials and maintains customer email details.
You, the agency
Connects the store to the right campaign, sets timing, runs order tests and owns delivery monitoring.
Set up EMR Automations while signed in as the agency owner and working in the intended client location. The business owner handles access to their own software. They do not need your agency login or a daily EMR task.
A message you can send the business owner
“We can ask for a review when your WooCommerce order is marked Completed. First, let’s check that Completed means the customer has received the service or purchase. Your store administrator will create a connection key; I will connect the review campaign and test an order. You will not need another WordPress review plugin.”
Once it is connected
The store’s existing order process moves eligible orders to Completed. That change starts the review workflow automatically. The owner keeps order statuses and emails accurate; you maintain the EMR connection and campaign.
Have these ready
- The HTTPS store URL, for example https://shop.example.com.
- A WordPress administrator or shop manager who can generate WooCommerce REST API credentials.
- A completed order with a valid billing or customer email; phone alone is insufficient for this connection.
First client? Prepare the review campaign first
From your agency, open Business → Customers → Manage Customers → Open dashboard (or the Customer tab if shown). Select the business location you are setting up.
A campaign is the review message and any follow-ups you want EMR to send. A feedback form controls where the customer is invited to leave their review.
Use Grow → Review Tools → Feedback Forms to prepare the customer’s review destination, then Grow → Campaigns → Request Reviews to create the campaign. Choose its feedback form, message and working sender. Start with one email step for this walkthrough. Add your own test contact through Grow → Campaigns → Invites and verify the message and link.
Set the campaign’s sending window and duplicate-request window. Honour opt-outs. For Google review campaigns, ask eligible customers consistently, leave review gating off and offer no incentives.
Do I need to understand APIs or write code?
No coding is needed for this route. You enter the business’s connection details into EMR’s built-in setup wizard. EMR handles the API calls. Your work is choosing settings and copying the connection credential; you do not write code or build a Zap.
A key or token is a private connection credential. A webhook is an automatic notice that something happened, such as a payment completing. Keep connection credentials private; the business owner does not need to share their everyday login password.
The walkthrough
Set it up, step by step
Store URL and two API credentials. Work through this together the first time.
Together
Check the store’s Completed status
Ask the owner to show one recent order and explain when it moved to Completed. A shipping plugin may do this at dispatch, while a service business may do it after the job.
Agree a moment when asking makes sense. If delivery usually takes several days after completion, use a delivery-based workflow instead of assuming a 24-hour delay is enough.
Before moving on: Completed is an appropriate review moment for this store.
Business owner
Create the WooCommerce API credentials
In WordPress, go to WooCommerce → Settings → Advanced → REST API → Add key.
Give the key a recognisable description, assign an administrator or shop manager user, choose Read/Write and generate it. Copy both the Consumer key and Consumer secret securely. Write permission is needed to create the webhook.
Before moving on: You have both credentials and the HTTPS store address.
Agency
Connect WooCommerce in EMR
From your agency account, open the client dashboard and select the correct location. Go to Connect → Integrations → Automations. On the WooCommerce card, click Connect WooCommerce. If it already shows Manage WooCommerce, open that and choose New Integration.
Enter the store URL, Consumer key and Consumer secret. Validate before continuing.
Before moving on: EMR confirms access to the store.
Agency
Select the campaign and create the webhook
Choose the campaign, then a delay up to 24 hours after completion or The next morning in the correct timezone.
Click Create Webhook, then Activate Integration. Some hosts block WooCommerce’s test ping, so a missing ping does not settle whether real order deliveries work. Run a real order-status test next.
Before moving on: The connection is active and the intended campaign is selected.
Together
Test an order from start to finish
In a test store where possible, have the owner open WooCommerce → Orders → Add order. Add a product so the total is above zero and enter your own email under Billing. Save it as Processing, then change Status to Completed and save the update. On a live store, agree the test order with the owner first because order changes can also affect stock, bookkeeping and store emails.
Confirm the event, scheduled time and actual message. Test a cancellation or refund while the second order’s request is still Scheduled in EMR. Do not alter an unrelated customer order for testing.
Before moving on: Only the eligible completed order produces the expected invitation.
Example: a repair shop sells a service online
The online order stays Processing while the repair is underway. When the customer collects the repaired item, staff mark it Completed. EMR schedules the request one hour later. The booking or payment earlier in the week does not trigger this completion-based automation.
How to know it is working
Follow the event all the way to a message you receive. A green connection or a successful test response is only part of that journey.
Where to look: Open Automations → WooCommerce, click the connection name and check Recent orders. Match the test order and email. Then find the contact under Grow → Campaigns → Invites and verify the delivered message. In the automation’s activity, Sent means the contact was passed to the campaign; the inbox check confirms the message actually arrived.
When to expect the message: Set the first-request delay here in the automation. EMR does not add the campaign’s first-step delay on top, but its allowed sending hours still apply. For example, a request due at 8 pm waits if the campaign only sends between 9 am and 6 pm. Follow-up timing stays in the campaign.
Testing again? Use another email address you control for a second successful-send test. Reusing the first address can correctly trigger your duplicate-request rule. Keep that protection on for real customers.
Test 1: Leave your test order at Processing.
Expected result: No request from this automation.
Test 2: Mark the same non-zero test order Completed.
Expected result: The order appears in EMR activity. Check the scheduled time, then the real message and review destination.
Test 3: Refund or cancel a second agreed test order while its request is still Scheduled in the automation.
Expected result: The automation cancels that pending request. An order already passed to the campaign is not a valid test of this protection.
If something does not work
Credentials fail validation
Confirm HTTPS, the full key and secret, Read/Write access, and an active user with order permissions. Ask the store administrator to check security plugins, hosting rules and whether WordPress Settings → Permalinks is using Plain, which does not support this REST API setup. Have them plan any permalink change to avoid breaking existing shop links.
Completed orders are skipped
Check email availability and order amount, then the activity reason. Free orders do not trigger this workflow.
The webhook was deleted
Restore the connection through EMR and retest. A periodic health check does not replace investigating a deleted webhook or changed credentials.
At handover, record the connection name, source account, client location, campaign, timing, test result and person responsible for failures. Test again after changing the workflow. Keep passwords, API keys and private webhook URLs out of the handover notes.
Cost, reliability and the simpler alternatives
Cost: No extra automation-platform subscription or EMR-specific WordPress plugin. Normal store hosting, payment, EMR and message delivery costs still apply.
Reliability: EMR follows order updates and periodically checks webhook health and recent completed orders. Cancellations, failures and refunds, including partial refunds, stop requests still scheduled in the automation. They do not withdraw contacts already passed to the campaign.
When to use something else: Use a delivery event through a bridge when dispatch and customer receipt are far apart. For a business that sends its final invoice only after work, an email trigger can be simpler to maintain.