Add Custom Attributes to Customers by Email
POST https://api.chartmogul.com/v1/customers/attributes/custom
Adds custom attributes to customers that have the specified email address.
curl -X POST "https://api.chartmogul.com/v1/customers/attributes/custom" \
-u YOUR_API_KEY: \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"custom": [
{"type": "String", "key": "channel", "value": "Facebook", "source": "integration"},
{"type": "Integer", "key": "age", "value": 8}
]
}'
customers = ChartMogul::Customer.search("[email protected]")
customers.each { |c|
c.add_custom_attributes!(
{ type: "String", key: "channel", value: "Facebook", source: "integration" },
{ type: "Integer", key: "age", value: 8 }
)
}
ChartMogul.CustomAttribute.add(config, {
email: "[email protected]",
custom: [
{
type: "String",
key: "channel",
value: "Facebook",
source: "integration",
},
{
type: "Integer",
key: "age",
value: 8,
},
],
});
$customers = ChartMogul\Customer::search("[email protected]");
foreach ($customers->entries as $customer) {
$customer->addCustomAttributes(
["type" => "String", "key" => "channel", "value" => "Facebook", "source" => "integration"],
["type" => "Integer", "key" => "age", "value" => 8]
);
}
api.AddCustomAttributesWithEmail("[email protected]",
[]*cm.CustomAttribute{
&cm.CustomAttribute{
Type: "String",
Key: "channel",
Value: "Facebook",
Source: "integration"},
&cm.CustomAttribute{
Type: "Integer",
Key: "CAC",
Value: 8},
}
)
chartmogul.CustomAttributes.add(
config,
data={
"email": "[email protected]",
"custom": [
{
"type": "String",
"key": "channel",
"value": "Facebook",
"source": "integration",
},
{
"type": "Integer",
"key": "CAC",
"value": 8,
},
],
},
)
{
"entries": [
{
"id": 25647,
"uuid": "cus_de305d54-75b4-431b-adb2-eb6b9e546012",
"external_id": "cus_0001",
"email": "[email protected]",
"name": "Smith Company",
"mrr": 3000,
"arr": 36000,
"status": "Active",
"customer-since": "2022-06-09T13:16:00-04:00",
"billing-system-url": "https://dashboard.stripe.com/customers/cus_4Z2ZpyJFuQ0XMb",
"chartmogul-url": "https://app.chartmogul.com/#customers/25647-Smith_Company",
"billing-system-type": "Stripe",
"currency": "USD",
"currency-sign": "$",
"attributes": {
"tags": ["important", "Prio1"],
"stripe": {
"coupon": true
},
"custom": {
"channel": "Facebook",
"age": 8
}
}
}
]
}
#<ChartMogul::Customer:0x007fc7e1ca7028
@id=25647,
@uuid="cus_de305d54-75b4-431b-adb2-eb6b9e546012",
@external_id="cus_0001",
@name="Smith Company",
@email="[email protected]",
@status="Active",
@customer_since=2022-06-09 13:16:00 -04:00,
@attributes={
:tags=>["important", "Prio1"],
:stripe=>{
:coupon=> true
},
:custom=>{
:channel=> "Facebook",
:age=> 8
}
},
@mrr=3000,
@arr=36000,
@billing_system_url="https://dashboard.stripe.com/customers/cus_4Z2ZpyJFuQ0XMb",
@chartmogul_url="https://app.chartmogul.com/#customers/25647-Smith_Company",
@billing_system_type="Stripe",
@currency="USD",
@currency_sign="$"
>
{
entries: [
{
id: 25647,
uuid: "cus_de305d54-75b4-431b-adb2-eb6b9e546012",
external_id: "cus_0001",
email: "[email protected]",
name: "Smith Company",
mrr: 3000,
arr: 36000,
status: "Active",
"customer-since": "2022-06-09T13:16:00-04:00",
"billing-system-url": "https://dashboard.stripe.com/customers/cus_4Z2ZpyJFuQ0XMb",
"chartmogul-url": "https://app.chartmogul.com/#customers/25647-Smith_Company",
"billing-system-type": "Stripe",
currency: "USD",
"currency-sign": "$",
attributes: {
tags: ["important", "Prio1"],
stripe: {
coupon: true
},
custom: {
channel: "Facebook",
age: 8
}
}
}
]
}
array (
"channel" => "Facebook",
"age" => 8
)
(*chartmogul.Customers)(0xc042062e70)({
Entries: ([]*chartmogul.Customer) (len=11) {
(*chartmogul.Customer)(0xc0421ca160)({
ID: (uint32) 25647,
DataSourceUUID: (string) "",
UUID: (string) (len=40) "cus_de305d54-75b4-431b-adb2-eb6b9e546012",
ExternalID: (string) (len=8) "cus_0001",
Name: (string) (len=10) "Adam Smith",
Email: (string) (len=16) "[email protected]",
Status: (string) (len=6) "Active",
CustomerSince: (string) (len=25) "2022-06-09T13:16:00-04:00",
Attributes: (*chartmogul.Attributes)(0xc04219e240)({
Tags: ([]string) (len=2) {
(string) (len=9) "important",
(string) (len=5) "Prio1"
},
Stripe: (*chartmogul.Stripe)(0xc04219a4a0)({
UID: (uint64) 0,
Coupon: (bool) true
}),
Clearbit: (*chartmogul.Clearbit)(0xc0421d8000)({
}),
Custom: (map[string]interface {}) (len=2) {
(string) (len=7) "channel": (string) (len=8) "Facebook",
(string) (len=3) "age": (float64) 8,
}
}),
Address: (*chartmogul.Address)(<nil>),
Mrr: (float64) 3000,
Arr: (float64) 36000,
BillingSystemURL: (string) (len=57) "https://dashboard.stripe.com/customers/cus_4Z2ZpyJFuQ0XMb",
ChartmogulURL: (string) (len=57) "https://app.chartmogul.com/#customers/25647-Smith_Company",
BillingSystemType: (string) (len=6) "Stripe",
Currency: (string) (len=3) "USD",
CurrencySign: (string) (len=1) "$",
Company: (string) "",
Country: (string) "",
State: (string) "",
City: (string) "",
LeadCreatedAt: (string) "",
FreeTrialStartedAt: (string) "",
Errors: (chartmogul.Errors) chartmogul: map[]
})
},
Page: (uint32) 0,
PerPage: (uint32) 0,
HasMore: (bool) false,
CurrentPage: (int32) 0,
TotalPages: (int32) 0
})
Customers(entries=[
<Customer{
arr=36000,
attributes=<Attributes{
custom={
"channel": "Facebook",
"age": 8, },
stripe=<Stripe{
"coupon": True,
}>,
tags=["important",
"Prio1"]}>,
billing_system_type: "Stripe",
billing_system_url="https://dashboard.stripe.com/customers/cus_4Z2ZpyJFuQ0XMb",
chartmogul_url: "https://app.chartmogul.com/#customers/25647-Smith_Company",
currency="USD",
currency_sing="$",
customer_since=datetime.datetime(2022, 6, 9, 13, 16),
email="[email protected]",
external_id="cus_0001",
id=25647,
mrr=3000,
name="Smith Company",
status="Active",
uuid="cus_de305d54-75b4-431b-adb2-eb6b9e546012"
}>
])
Body parameters
emailstring required-
The email address of the customers to whom custom attributes must be added.
customarray(object) required-
An
Arraycontaining the custom attributes to be added to the customers. Each custom attribute must have atype,keyandvalueas described below.typestring required-
The data type of the custom attribute. Can be one of
String,Integer,Decimal,TimestamporBoolean.Supported data types and their accepted formats.
String- Accepts alphanumeric characters. Maximum of 255 characters allowed.Integer- Accepts only numeric characters.Decimal- Accepts floating point numbers.Timestamp- In the ISO 8601 format.Boolean- Can be one ofTRUE,true,t,1,FALSE,false,f, or0.
keystring required-
The name of the custom attribute. Accepts alphanumeric characters and underscores.
valuestring required-
The value of the custom attribute. Should be of the data type as specified in
type. sourcestring optional default: "API"-
Optional parameter to specify where the custom attribute was created, displayed in the ChartMogul UI. Defaults to
API. Not included in the response.
Response
In the response, entries contains an array of JSON objects with the following data:
id- The internal ChartMogul ID of the customer object with specified email.
uuid- The UUID of the customer object generated by ChartMogul.
external_id- The unique external identifier for this customer, if any.
name- The name of this customer.
email- This customer's email address.
status- The status of this customer. One of
ActiveorCancelled, depending on whether the customer has any active subscriptions or not. customer-since- An RFC3339 formatted datetime attribute indicating when the customer first started paying for a subscription.
attributes- A JSON object representing this customer's attributes containing the following data:
tags- An Array of all the tags now on this customer.
stripe- A JSON object representing any metadata on this customer object in your Stripe account.
custom- A JSON object representing custom attributes that you have added to this customer.