If you call the /setTags API with a userId and get a 200 OK, but the tag never shows up for that user in the Control Panel, the cause is almost always the tag's scope.
When a tag is created you choose how its values are stored:
- General (default) — the value is stored per device (HWID). Each device of the same person can hold a different value.
- User-specific — the value is stored per user (UserID) and applies to all of that user's devices at once.
Setting a tag by userId only writes to the user profile store. If the tag was created as General, the value has nowhere user-level to land, so it does not appear against the user.
To check the scope:
- Go to Audience > Tags in your Pushwoosh Control Panel.
- Find the tag you are setting via the API and open it.
- Check whether its scope is General (device-level) or User-specific.
To resolve it:
-
If the tag has no data yet: delete it and create it again with the User-specific scope, then re-send your
/setTagsrequest. - If the tag already holds values — do NOT delete and recreate it. The tag type cannot be changed in the Control Panel, and recreating the tag breaks the link to your existing device-level data, making it invisible to segmentation. Open a support ticket instead and ask for a tag-type migration, providing the exact tag names and a preferred two-hour maintenance window. Avoid sending campaigns or running segmentations on those tags during the migration.
Note: scope (General vs User-specific) is a separate axis from whether a tag is application-specific or application-nonspecific, which controls whether the value is shared across the projects in your account.
Learn more: Manage user data with tags
Comments
0 comments
Article is closed for comments.