Custom Attributes

Use the Custom Attributes API to apply customizable data or characteristics to each of your subscribers. You can then build segments based on that information to send targeted campaigns and journeys. This data cannot contain any sensitive or special categories of information as defined in applicable data protection and privacy laws, including the California Consumer Privacy Act (CCPA) and California Privacy Rights Act (CPRA). See a list of specific categories of data you cannot share with Attentive here.

Set Custom Attributes

Use the setCustomAttributes mutation for any attribute-based data for a user. There are no limits to the amount of custom attributes that can be created. Note that you can create net-new properties with this API, however, it cannot be used to create new values for an existing UI-created property name. If a property name is created through the Attentive platform, all possible property values must also be defined in the platform. For example, if a property has possible values of "Adult, Teen, Children's", those are the only values that will be accepted through the API. This does not apply for properties with the type "Custom input", for example: Full Name.

The following input fields are provided:

properties - Required. Any metadata associated with the attribute. Any metadata associated with the attribute. Object keys are expected to be strings. Object values can be any type. The key will be assigned a type corresponding to the type seen of the first value. For example, if 'Age' is passed with the first value of '24', 'Age' will be typed as a 'Number'. There is no need to pass strings in double quotes. Both object keys and object values are case sensitive. "Favorite color" and "Favorite Color" would be considered different custom attributes.

user - Required. User associated with the action. Note that this is a visitor to the site and does not need to be actively subscribed to Attentive.

Example Mutation

Make sure to set the Authorization: Bearer <Unique API Key> on the request. For more information about obtaining a unique API Key please see the Authentication Docs

POST https://api.attentivemobile.com/v1/graphql

Copy
Copied
mutation setCustom($customAttributesInput: SetCustomAttributesInput!) {
    setCustomAttributes(input: $customAttributesInput) {
        properties
        user {
            email
            phone
            externalIdentifiers {
                clientUserId
                customIdentifiers {
                    name
                    value
                }
            }
        }
    }
}

Example Input Variable

Copy
Copied
{
    "customAttributesInput": {
        "properties": "{ \"age\": \"24\", \"birthday\": \"1986-11-16\", \"sign up\": \"2021-04-23T16:04:33Z\", \"favorite team\": \"Minnesota Vikings\", \"Gift card balance\": \"50.89\", \"VIP\": \"TRUE\" }",
        "user": {
            "email": "test@gmail.com",
            "phone": "+13115552368",
            "externalIdentifiers": {
                "clientUserId": "c60b3f4e-ec73-4ff0-be4b-6a0fce825e89",
                "customIdentifiers": [
                    {
                        "name": "customIdentifierName",
                        "value": "customIdentifierValue"
                    }
                ]
            }
        }
    }
}

Example Response

Copy
Copied
{
    "data": {
        "setCustomAttributes": {
            "properties": "{ \"age\": \"24\", \"birthday\": \"1986-11-16\", \"sign up\": \"2021-04-23T16:04:33Z\", \"favorite team\": \"Minnesota Vikings\", \"Gift card balance\": \"50.89\", \"VIP\": \"TRUE\" }",
            "user": {
                "email": "test@gmail.com",
                "phone": "+13115552368",
                "externalIdentifiers": {
                    "clientUserId": "c60b3f4e-ec73-4ff0-be4b-6a0fce825e89",
                    "customIdentifiers": [
                        {
                            "name": "customIdentifierName",
                            "value": "customIdentifierValue"
                        }
                    ]
                }
            }
        }
    },
    "extensions": {
        "traceId": "00000"
    }
}