These docs are for v1.7. Click to read the latest docs for v2.1.

Once Off Message Campaign

Communicate with your audience through once off message campaigns.

Before you begin

Create and send a once-off message campaign to engage your audience. You can engage a specific group of holders of digital passports thanks to tags or digital passport identification number(s).

Limitations

Digital passport owners cannot reply to your once message campaigns.

Let's start 🚀

Create Once Off Message Campaign

Step 1: Create your once-off message campaign draft respecting the Message Schema by using the /onceOfMessage.

📌

The API is authenticated with the user rights required → certCreate

Target your audience owning digital passports associated with at least one defined tag

{
    "campaignName": "New Arianeer",
    "tagRule": "or",
  	"isWalletActiveSinceNumberOfDays": null,
    "uniqueOwner": true,
    "tags": ["dropJan23","dropFeb23"], // Target tags
    "content": "{\"$schema\":\"https://cert.arianee.org/version1/ArianeeMessage-i18n.json\",\"language\":\"en-US\",\"i18n\":[{\"language\":\"en-US\",\"title\":\"Hello Arianeer!\",\"content\":\"Wether you joined us this year or prior to 2022, we want to thank you for being part of this adventure.\"}]}",
    "status": "DRAFT"
}

Only target custodial wallets & active wallets

{
    "campaignName": "New Arianeer",
    "status": "DRAFT",
    "content": "{\"$schema\":\"https://cert.arianee.org/version1/ArianeeMessage-i18n.json\",\"language\":\"en-US\",\"title\":\"Hello Arianeer!\",\"content\":\"Wether you joined us this year or prior to 2022, we want to thank you for being part of this adventure.\"}",
    "uniqueOwner": true,
    "tags": [],
    "tagRule": "all",
    "isWalletActiveSinceNumberOfDays": 30,
    "custodialWallet": "yes",
    "countries": [],
    "_id": "6525520ea1e2be28ae2735ff",
    "createdAt": "2023-10-10T13:30:54.689Z",
    "updatedAt": "2023-10-10T13:30:54.689Z",
    "__v": 0,
    "id": "6525520ea1e2be28ae2735ff"
}

Target specific countries & active wallets

💡

To fetch the list of countries, refer to the Segmentation documentation.

{
    "campaignName": "New Arianeer",
    "status": "DRAFT",
    "content": "{\"$schema\":\"https://cert.arianee.org/version1/ArianeeMessage-i18n.json\",\"language\":\"en-US\",\"title\":\"Hello Arianeer!\",\"content\":\"Wether you joined us this year or prior to 2022, we want to thank you for being part of this adventure.\"}",
    "uniqueOwner": true,
    "tags": [],
    "tagRule": "all",
    "isWalletActiveSinceNumberOfDays": 30,
    "custodialWallet": "yes",
    "countries": [
        "France",
        "Spain"
    ],
    "_id": "6525530ca1e2be28ae2736eb",
    "createdAt": "2023-10-10T13:35:08.125Z",
    "updatedAt": "2023-10-10T13:35:08.125Z",
    "__v": 0,
    "id": "6525530ca1e2be28ae2736eb"
}
🚀

* All filter types (tags or tokenId, isWalletActiveSinceNumberOfDays, custodialWallet, countries) can be combined to refine your target audience.* If you wish to know how many recipients are involved in your campaign, use our dedicated API.

Input

Mandatory

Type

Description

campaignName

String

Name of the campaign as a reference in your NFT Management Platform.

tagRule

String

Tag rules that define if your audience must own all mentioned tags or at least one.
or: The owner must have a digital passport with at least one defined tag.
and: The owner must have a digital passport that includes all specified tags.
all: All digital passports can be targeted independently of their tags or ID.
tokenIds: The owner must be one defined tokenId listed into the field tokenIds.
⚠️ The tokenIds filed is limited to 100,000 entries.

uniqueOwner

Boolean

true: One message is sent per wallet even if your customer owns several digital passports.

tags

String

Use tags to target your audience.
If you do not define tags, set it as an empty [] array and use tokenIds to target your audience.
⚠️ Tags are case-sensitive.

tokenIds

String

Target specific digital passport IDs to send the campaign.
If you do not define tokenIds, use tags to target your audience.
Example: 123,345,456...

isWalletActiveSinceNumberOfDays

Number

A period in days during which activity was observed on the user's wallet.

custodialWallet

String

Custodial or non-custodial wallet.
yes: Send to custodial wallet only.
no: Send to non-custodial wallet only.
all: Both types of wallet.

countries

String

Define the target country.
String with values separated by a pipe
Example: France\|Spain...
⚠️ Countries are case-sensitive.

content

Object

For more information on the content $schema, see Message Schema.

statut

String

Statut set as DRAFT.

Result: Your once-off message campaign draft has been created and is ready to be sent. Keep the _id, ID of the campaign, to send it the next step.

{
    "tags": [
        "test_api_5k"
    ],
// ID of the once off message campaign
    "_id": "63b7ef72ec133a4fe78e7399",
    "campaignName": "campaign name",
    "tagRule": "or",
    "uniqueOwner": true,
    "tokenIds": {
        "type": "Buffer",
        "data": []
    },
    "content": "{\"$schema\":\"https://cert.arianee.org/version1/ArianeeMessage-i18n.json\",\"language\":\"en-US\",\"i18n\":[{\"language\":\"en-US\",\"title\":\"Hello you !\",\"content\":\"My message content here.\"}]}",
    "status": "DRAFT",
    "createdAt": "2023-01-06T09:52:50.018Z",
    "updatedAt": "2023-01-06T09:52:50.018Z",
    "__v": 0,
    "id": "63b7ef72ec133a4fe78e7399"
}

Step 2: Once your once-off message draft is ready to be sent, use /onceOfMessage/{_id}/createMessage.

Result:

httpCode

Description

200

Your once-off message campaign has been sent to your audience.
In this example, 46 messages, t, has been delivered.

500

Your once-off message campaign ID may not exist.

400

Your campaign has already been sent.

400

No digital passport was found for your campaign ID.

{
    "ok": 1,
    "writeErrors": [],
    "writeConcernErrors": [],
    "insertedIds": [
        {
            "index": 0,
            "_id": "63b7ef72ec133a4fe78e7399"
        }
    ],
    "nInserted": 1,
    "nUpserted": 0,
    "nMatched": 0,
    "nModified": 0,
    "nRemoved": 0,
    "upserted": [],
    "lastOp": {
        "ts": "7185474668390776833",
        "t": 46
    }
}
{
    "name": "API Error",
    "description": "This message 63b7ef1cec133a4fe78e7397 has already been created",
    "code": "nmp.back.onceOff.campaignAlreadyCreated",
    "httpCode": 400
}
{
    "name": "API Error",
    "description": "No NFT found for the message campaign 641436fc334534f2ee7907aa",
    "code": "nmp.back.onceOff.noNFTsFound",
    "httpCode": 400
}
{
    "sentryLink": "https://sentry.io/organizations/arianee/issues/?project=5375493&query=id:ee2e0719a4de4585b120be9e523ef55e&statsPeriod=1h",
    "message": "An unexpected error occured. To help fixing this bug, please send us sentryLink"
}

Update Once Off Message Campaign

Update the content of your once message campaign, e.g. let's say you wish to correct your campaign title and use the /onceOffMessage/{_id}.

📌

The API is authenticated with the user rights required → certCreate

{
    "campaignName": "Hello & welcome to your Arianee NFT",
    "tagRule": "or",
    "uniqueOwner": true,
    "tags": ["dropJan23","dropFeb23"],
    "tokenIds": "",
    "content": "{\"$schema\":\"https://cert.arianee.org/version1/ArianeeMessage-i18n.json\",\"language\":\"en-US\",\"i18n\":[{\"language\":\"en-US\",\"title\":\"Hello you !\",\"content\":\"My message content here.\"}]}",
    "status": "DRAFT"
}

Result: Your campaign has been updated.

httpCodeDescription
200Your once-off message campaign has been updated.
400Your once-off message campaign ID may not exist.
{
    "tags": [
        "tag_test",
        "other_tag"
    ],
    "_id": "63b7ef72ec133a4fe78e7399",
    "campaignName": "Welcome to your Arianee NFT!!",
    "tagRule": "or",
    "content": "{\"$schema\":\"https://cert.arianee.org/version1/ArianeeMessage-i18n.json\",\"language\":\"en-US\",\"i18n\":[{\"language\":\"en-US\",\"title\":\"Hello you !\",\"content\":\"My message content here.\"}]}",
    "createdAt": "2023-02-16T15:39:36.389Z",
    "updatedAt": "2023-03-16T13:29:54.351Z",
    "__v": 0,
    "enable": false,
    "id": "63b7ef72ec133a4fe78e7399"
}
{
    "stringValue": "\"63ee4e3822c4554801f7\"",
    "kind": "ObjectId",
    "value": "63ee4e3822c4554801f7",
    "path": "_id",
    "reason": {}
}