Skip to content
Miss Blue

Product guide

Lists and tags

Two independent ways of saying which people something is about. A list is a group you send to; a tag is something you know about a person. Somebody can be on a list, carry tags, both, or neither — and either one arriving can start an automation.

Keyed on the number, not a contact

Membership is stored against the canonical handle, so importing four hundred phone numbers does not require creating four hundred contacts first.

Adding twice adds once

Only rows the call actually creates count as somebody arriving. Re-uploading yesterday's spreadsheet starts nobody.

Tags are normalised

Lowercased and trimmed, so VIP, vip and “ vip ” are one tag rather than three that look identical in a list.

5,000 per call

Enough for a real import, small enough that a runaway integration is noticed rather than absorbed. A bigger list arrives as several calls.

Make a list

curl -X POST https://api.missblue.dev/v1/projects/$PROJECT/lists \
  -H "Authorization: Bearer $MISS_BLUE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Spring promo","description":"Asked about the spring offer"}'

Put people on it

The response says what actually happened, which is the number worth logging: added is how many rows this call created, already how many were there, and started how many runs of an automation it began.

curl -X POST https://api.missblue.dev/v1/projects/$PROJECT/lists/$LIST/members \
  -H "Authorization: Bearer $MISS_BLUE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"handles":["+13055550142","+13055550143"],"source":"api"}'

{"added": 2, "already": 0, "started": 2}

Tag people

curl -X POST https://api.missblue.dev/v1/projects/$PROJECT/tags \
  -H "Authorization: Bearer $MISS_BLUE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tag":"vip","handles":["+13055550142"]}'

What is true about one person

curl https://api.missblue.dev/v1/projects/$PROJECT/audience/%2B13055550142 \
  -H "Authorization: Bearer $MISS_BLUE_API_KEY"

{"lists":[{"id":"…","name":"Spring promo"}],"tags":["vip"]}

Taking somebody off

Removing somebody from a list does not stop an automation they are already inside. That is deliberate: leaving an audience is not the same as asking not to be messaged, and the thing that means that is the do-not-message list.

curl -X POST https://api.missblue.dev/v1/projects/$PROJECT/lists/$LIST/remove \
  -H "Authorization: Bearer $MISS_BLUE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"handle":"+13055550142"}'
NextAutomationsStart a sequence the moment somebody joins a list or gets a tag.