Bulk import
Bulk Import creates and updates guards from a spreadsheet. It suits large catalogues, and setups where you already know the IDs of your products, locations and ads. Open it from the app’s navigation, or with Bulk Import on the Guards page.
On this page
Section titled “On this page”- Steps
- The template
- Columns
- One row per target
- Updating existing guards
- Errors
- See also
- Connect the ad platforms the file will use, in Settings. See Ad platforms.
- On Bulk Import Guards, click Download the template (
guardified-import-template.xlsx). - Fill in one row per ad target.
- Click Upload file, or drop the
.xlsxfile onto the upload area. - Click Import. Clear removes the chosen file.
On success the page shows “Created N guard(s).”, plus “Updated N existing guard(s).” when the file changed guards you already had.
The template
Section titled “The template”The template is an Excel file (.xlsx) with one sheet, Guards: a header row and one example row. Guardified reads the first sheet of the file you upload. Other file types, such as CSV, are not accepted.
Columns
Section titled “Columns”| Column | Required | What goes in it |
|---|---|---|
productId | Yes | The Shopify product ID. |
variantId | Yes | The Shopify variant ID. |
locationId | Yes | The Shopify location ID whose stock the guard watches. |
threshold | Yes | The pause threshold, a whole number, 0 or higher; an empty cell counts as 0. |
autoResume | Yes | true, 1, yes or on for auto-resume; anything else turns it off. |
emails | Yes | One or more recipients, separated by commas, semicolons or spaces. |
platform | Yes | meta, google_ads or tiktok. |
objectLevel | Yes | The level of the target; see below. |
objectId | Yes | The ID of the campaign, ad set, ad group or ad on that platform. |
objectName | No | A name to show for the target in Guardified. |
Shopify IDs can be the plain number (1234567890) or the full ID (gid://shopify/ProductVariant/1234567890).
Levels per platform:
platform | objectLevel |
|---|---|
meta | campaign, ad_set, ad |
google_ads | campaign, ad_group, ad |
tiktok | campaign, ad_group, ad |
For a Google Ads ad, objectId is the ad group ID and the ad ID joined by a tilde: adGroupId~adId, for example 1234567890~9876543210.
The targets are added from the account that is active for each platform in Settings, so the IDs must belong to that account.
One row per target
Section titled “One row per target”Each row is one ad targetAd targetA campaign, ad set, ad group or single ad on Meta Ads, Google Ads or TikTok Ads that a guard pauses and turns back on.
Read more →
. Rows that share the same variantId, locationId, threshold, autoResume and emails become one guard with all of their targets.
| variantId | locationId | threshold | autoResume | emails | platform | objectLevel | objectId |
|---|---|---|---|---|---|---|---|
| 2345678901 | 111111111 | 3 | true | ops@example.com | meta | campaign | 120999888777 |
| 2345678901 | 111111111 | 3 | true | ops@example.com | tiktok | ad_group | 1780000000001 |
These two rows make one guard with a Meta campaign and a TikTok ad group as targets. Keep those five columns identical on every row that belongs to the same guard.
Updating existing guards
Section titled “Updating existing guards”“Existing guards with the same variant and location are updated during import.” An updated guard takes the threshold, auto-resume setting, recipients and targets from the file, replacing its old targets, and becomes active again.
Errors
Section titled “Errors”Guardified checks every row before it creates anything. If any row has a problem, nothing is imported and the page shows Validation failed with the row numbers (row 2 is the first row under the header). Up to 20 errors are listed.
| Error | Cause |
|---|---|
| Missing column X | The header row has no column named X. |
| Invalid platform (meta|tiktok|google_ads) | platform isn’t one of the three values. |
| Invalid objectLevel for platform X | The level doesn’t exist on that platform. |
| Threshold must be an integer >= 0 | threshold is negative or not a whole number. |
| Invalid emails | emails is empty or has an address that isn’t valid. |
| Required IDs are missing | One of productId, variantId, locationId or objectId is empty. |
| No connected X integration account | The platform isn’t connected in Settings. |
| Variant not found in Shopify | No variant with that ID in your store. |
| Location not found in Shopify | No location with that ID in your store. |
Other messages: “Upload a valid XLSX file.” and “No rows found in file.”
Fix the rows and upload the file again.
See also
Section titled “See also”- Create a guard: the same settings in a form, with pickers instead of IDs.
- Ad targets: what each level pauses.
- Thresholds and auto-resume: what
thresholdandautoResumedo. - Manage guards: check the imported guards.