Create attribute


Create custom attributes to personalize our app to meet your needs.

Send a messages or a triggered messages based on criteria you care about. Attributes will help you filter your users.

As stated below in the table, you can set 4 different types for attribute: boolean (true/false), integer (number), date (YYYY-MM-DD format) and string (just a text, for example: "this is sample string 123").

POST

/attributes/

Data
Type
Description
value_type
string
Various types are described here
name
string
The name of an attribute you want to create. Has to be at least 1 character, and cannot be longer than 32 characters.
content_type
string
The type of content you want create attribute for. Possible content types are: clientuser, company, deal, product
curl -X POST -H "Authorization: Token <your_64_char_api_key>" -H "Content-Type: application/json" -d '{
  "value_type": "boolean",
  "name": "My Attribute",
  "content_type": "clientuser"
}' "https://app.userengage.com/api/public/attributes/"

Response

{
  "content_type": "user",
  "name_std": "my_attribute",
  "value_type": "boolean",
  "id": 2511,
  "name": "My Attribute"
}
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://app.userengage.com/api/public/attributes/",
  "method": "POST",
  "headers": {
    "authorization": "Token <your_64_char_api_key>",
    "content-type": "application/json"
  },
  "processData": false,
  "data": "{ \n \"value_type\": \"boolean\", \n \"name\": \"My attribute\", \n \"content_type\": \"clientuser\" \n}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
var data = JSON.stringify({
  "value_type": "boolean",
  "name": "My Attribute",
  "content_type": "clientuser"
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://app.userengage.com/api/public/attributes/");
xhr.setRequestHeader("authorization", "Token <your_64_char_api_key>");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);
var request = require("request");

var options = { method: 'POST',
  url: 'https://app.userengage.com/api/public/attributes/',
  headers:
   { 'content-type': 'application/json',
     authorization: 'Token <your_64_char_api_key>' },
  body: { value_type: 'boolean', name: 'My Attribute', content_type: 'clientuser' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://app.userengage.com/api/public/attributes/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n  \"value_type\": \"boolean\",\n  \"name\": \"My Attribute\"\n}", \n \"content_type\": \"clientuser\" \n}"
  CURLOPT_HTTPHEADER => array(
    "authorization: Token <your_64_char_api_key>",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import requests

url = "https://app.userengage.com/api/public/attributes/"

payload = "{\n  \"value_type\": \"boolean\",\n  \"name\": \"My Attribute\"\n}", \n \"content_type\": \"clientuser\" \n}"
headers = {
    'authorization': "Token <your_64_char_api_key>",
    'content-type': "application/json"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
import http.client

conn = http.client.HTTPSConnection("app.userengage.com")

payload = "{ \n \"value_type\": \"boolean\", \n \"name\": \"My attribute\", \n \"content_type\": \"clientuser\" \n}"

headers = {
    'authorization': "Token <your_64_char_api_key>",
    'content-type': "application/json"
    }

conn.request("POST", "/api/public/attributes/", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))