VTEX
Updated August 24, 2026
The VTEX integration imports your store’s completed orders into Pluspoint. Each imported order creates or matches a contact and writes a dated VTEX entry on that contact’s timeline. That entry is what a post-purchase automation listens for. Connect it when you want a purchase to drive a survey, a message or a coupon without exporting anything by hand.
Before you start
- Account Settings permission set to Full — the Integrations tab is hidden from everyone else.
- Access to your VTEX Admin, with permission to generate application keys.
- A Pluspoint location to link the store to.
- An active subscription that is inside its location and user limits.
Where to find it
Settings → Integrations, or go to https://app.pluspoint.io/account-settings/integrations.
Generate an App Key and App Token in VTEX
The App Key identifies the application connecting to your store and the App Token authorises it. Pluspoint needs both, plus your account name.
- Log in to your VTEX Admin.
- Go to Account Management → Apps.
- Click Generate App Key and Token.
- Choose Internal app keys as the key type. This is the level of access Pluspoint needs.
- Under permissions, include the View order resource. It is part of OMS - Full access and IntegrationProfile - Fulfillment Oms. Without it Pluspoint cannot read order details.
- Click Generate.
- Copy the App Key and the App Token straight away.
Warning The App Key and App Token grant access to your VTEX store. Store them somewhere secure and do not share them beyond the person doing this setup.
Connect your VTEX store
- Go to Settings → Integrations.
- Click Add integration and find VTEX.
- Click Connect.
- Fill in the three credential fields listed under Credential fields below.
- Click Connect.
Pluspoint validates the credentials before saving them. If VTEX rejects them, the connect fails with “VTEX Authentication failed” and nothing is stored.
On success the Manage integration modal opens so you can attach the account to a location.
Credential fields
| Field | What to enter |
|---|---|
| Account name | Your VTEX account name — the store identifier that appears in your VTEX Admin URL |
| Application Token | The App Token generated in VTEX |
| Application Key | The App Key generated in VTEX |
All three are required, and none is checked for format or length.
Link the store to a location
Orders are imported per location, so the VTEX account has to be attached to one.
- Open the Manage integration modal. It opens automatically after connecting, or later with the Manage button on the VTEX row.
- Choose Connect to location and pick the location from the Location dropdown, or choose Don’t connect to leave it unattached.
- Click Save.
You can do the same from the location: Locations → Manage → open the location → Integrations → the VTEX row → Connect Profile.
The Location dropdown hides locations that already hold a VTEX connection, so one location can carry only one store.
How the order import works
| Behaviour | Detail |
|---|---|
| Schedule | Once a day at 12:00 UTC |
| What is imported | The orders VTEX reports for the preceding day, for every location linked to a VTEX account. Complete orders only — incomplete orders are ignored |
| Contact matching | On the buyer’s cleaned phone number, or their email address |
| Contact updates | Missing first name, last name, email or phone number are filled in on an existing contact; existing values are left alone |
| Masked emails | VTEX proxy addresses ending in .ct.vtex.com.br are unwrapped back to the real address before the contact is saved |
| Event recorded | A VTEX order event lands on the contact’s activity timeline, which is what the VTEX order trigger listens for |
| Repeat customers | The order event is written only for a contact who has no integration event on their timeline yet. A returning buyer therefore does not produce a second one. Neither does a buyer whose contact already carries an event from another connected integration |
| Sending | None. The import records data; anything sent to the buyer comes from an automation you build |
| Accounts per Pluspoint account | One. Connecting again overwrites the stored account name, key and token |
Because the import is a daily batch, nothing can reach a buyer sooner than the next 12:00 UTC run after their order. Plan any delay you add on top of that.
Turn orders into a post-purchase message
Connecting the store is only the first half. To act on an order, build an automation in Campaigns → Automated — building one needs Campaigns full access and a plan that includes Campaigns.
The most common use is a post-purchase satisfaction survey:
- Go to Campaigns → Automated and click Create automation.
- Name it, for example “Post-purchase survey”.
- Click the Trigger node and select VTEX order under Trigger event(s). This option only appears once the VTEX integration is connected.
- Optionally turn on Once per contact, and optionally narrow the audience under Who can enter.
- Click the + on the edge below the trigger and add a Wait if you want to leave time for delivery. A wait placed directly after the trigger is measured from the order event itself. “3 days” therefore means three days after the order, not three days after the automation noticed it.
- Click the + again and add Send survey from the Send group.
- Choose the Channel and the Survey template. Only templates with Enable send surveys on are listed.
- If the channel is Email, pick a Library email design that has a Survey link button. If it is WhatsApp Business, pick an approved WhatsApp template whose URL button is a survey link. SMS and WhatsApp (Beta) use the survey template’s own Message template text.
- Click Save, then switch Enabled on from the Automated list. Until you do, the automation is a draft and sends nothing.
Automating surveys covers the automation canvas, template preparation and send timing in full.
Disconnecting VTEX
- On the VTEX row, click Delete. The same confirmation is available from the red Delete button inside the Manage integration modal.
- Confirm in the Delete integration? dialog.
The VTEX link on your location flips to Disconnected, so no further orders are imported. Contacts and activity already imported stay. Any automation using the VTEX order trigger stops receiving new entries.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| VTEX is not in the Add integration list | It is already connected | Only one VTEX account exists per Pluspoint account, so the row drops off the list once connected. Use Manage or Delete on the existing row |
| The Integrations tab is missing or greyed out | You do not have Account Settings set to Full, or the subscription has expired or exceeded plan limits | Ask an account owner or a full-access admin, or resolve the billing issue on Settings → Billing |
| ”VTEX Authentication failed” | The credentials are wrong, or the key does not have permission to read orders | Generate a new App Key and App Token in VTEX with order-read access and try again |
| The location drawer says No Active Integration Found | The account-level VTEX connection is missing or inactive | Use Go to integrations and connect VTEX first — that step needs Account Settings set to Full |
| A location is missing from the Location dropdown | It already holds a VTEX connection | Disconnect the store from that location first |
| VTEX order is missing from the automation trigger list | VTEX is not connected on this account | Connect it under Settings → Integrations |
| No contacts appear after connecting | The daily import has not run yet, or the location is not linked | The job runs once a day at 12:00 UTC and reads the previous day’s orders. Confirm the link in Manage integration or on the location |
| Contacts arrive but nothing is sent | Importing orders does not send anything on its own, or the automation is still a draft | Build an automation with the VTEX order trigger, check its Enabled switch, and look for nodes with a red border |
| Some buyers never receive an invite | They are unsubscribed, have no address for the chosen channel, or are inside the template’s over-survey protection window | Check the contact record, and review Over-survey protection on the template’s Sharing tab |
| A repeat buyer is not surveyed again | The order event is only written to a contact who has no integration event yet | Use a different trigger, such as a Custom event posted from your own systems, if you need every order to count |