Radario CRM and Marketing platform overview and notes on integration
CRM with customer profiles and deep segmentation over audience with more than 20 filters and parameters. Discover audience patterns: customers to reactivate, loyal groups, etc.
Managing customer relations with automation using smart segmentation and triggers. Launching easy scenarios: welcome messages, converting leads to customers, handling unsuccessful purchase attempts, handling bonuses and rewards, etc.
Ads automation: syncing segments with Facebook retargeting
Easy-to-use email builder
Customer profile enrichment (location, interersts, occupation, photos, etc.) via data platforms (FullContact, Clearbit, etc.)
3rd-party services integration via Zapier and API (coming soon)
Adroll integration (coming soon)
Integration
Integration is simple. The data is appended with the transactions. A transaction object is a custom event with information regarding the user: successful purchase, unsuccesful purchase, the subscription (lead). A transaction carries information about the customer, gig info, tickets info, location, total amount, unsuccessful attempt reason, UTM labels, etc.

The web interface has flexible filters, which help to build audience segments with preferable parameters in order to transfer their data with a transaction.
To add a transaction object described above, call Radario Marketing API method.
Transaction object
To send a request to the transaction service, create both data provider and a token.

Transaction service determines the data provider using the token, receives a request, processes the transaction and determines which host and user the customer belongs to.
POST /customer_transactions

{
  customer {customer}
  purchase {purchase}                                 
  unsuccessful_purchase {unsuccessful_purchase}       
  subscription {subscription}                        

  host_id string            REQUIRED   host (merchant) identifier @ 3rd party platform
  id string                 REQUIRED   transaction identifier
}
Transaction type is set with purchase, unsuccessful_purchase or subscription attributes:

  purchase — purchase
  unsuccessful_purchase — unsuccessful purchase attempt
  subscription — subscription
customer {
    gender gender                  
    first_name string              
    second_name string             
    birth_date {                    
      day int
      month int
      year int
    }
    registration_date isodatetime     registered date @ 3rd party system (UTC) 
    contact {               REQUIRED  at least one should be passed (more providers soon)
      email string
      vk_id string
      fb_id string
      tw_id string
    }
    tags [string]
}

purchase {
  amount money              REQUIRED    total amount charged
  currency string           REQUIRED    currency ISO 4217
  discount money                        discount amount
  channel {                 REQUIRED    distribution channel (e.g mobile app, referral partner, etc.)
    id string                           channel uid at 3rd party platform
    title string            REQUIRED   
  }
  tickets [{                REQUIRED
    event {                 REQUIRED
      id strings            REQUIRED   
      title string          REQUIRED   
      date isodatetime      REQUIRED    event starts at UTC date
      city string           REQUIRED   
    }
    type {                  REQUIRED    Type of the ticket
      id string                         
      title string          REQUIRED   
      price money           REQUIRED    Ticket type price
    }
    count int               REQUIRED    Tickets purchased (1,2..etc)
  }]
  user_id string            REQUIRED    event host identifier
  creation_date isodatetime REQUIRED    transaction date (UTC)

  payment {                 REQUIRED    Type of payment
    id string                           
    provider string         REQUIRED   
    date isodatetime        REQUIRED    Payment Date
  }
}

unsuccessful_purchase {
  amount money              REQUIRED    Total amount
  currency string           REQUIRED    currency ISO 4217
  discount money                        discount value
  user_id string            REQUIRED    
  creation_date isodatetime REQUIRED    
  channel {                 REQUIRED   
    id string                          
    title string            REQUIRED   
  }
  tickets [{                REQUIRED
    event {                 REQUIRED
      id strings            REQUIRED   
      title string          REQUIRED   
      date isodatetime      REQUIRED   
      city string           REQUIRED   
    }
    type {                  REQUIRED   
      id string                        
      title string          REQUIRED    
      price money           REQUIRED   
    }
    count int               REQUIRED   
  }]

  payment {                 REQUIRED   
    id string                           
    provider string         REQUIRED   
  }

  reason {
    id string                          
    description string                  reason description 
  }
}

subscription {
  email string              REQUIRED    contact email
}
The differences between unsuccessful_purchase and purchase are:

  1. unsuccessful_purchase has no payment.date attribute

  2. unsuccessful_purchase has a reason attribute containing reasons of an unsuccessful attempt (insufficient funds, 3DS fail, etc.)

Attribute money is casted to string as a number with two characters after the decimal point. The fractional part of the number is required and should be passed with a floating point as .00 (or with"," depending on locale).

Attribute isodatetime is a string value in ISO8601 date format:
yyyy-MM-ddTHH:mm:ssZ.

Example: "2014−05−18T19:15:00Z".

Using ISO8601 format is required. Time is set in 24 hours format.

Sample request:
curl -X POST -k -H "Authorization: token d7aac27b8c984527a38673028d02058c54520dbfb0ed" -H "Content-Type: application/json" -H "Accept: application/json" -d '{
  "id": "sdsd2g",
  "customer": {
    "gender": null,
    "first_name": "olga-rustel",
    "second_name": null,
    "birth_date": null,
    "registration_date": "2015-10-04T21:37:18Z",
    "contact": {
      "email": "olga-rustel@bk.ru",
      "vk_id": null,
      "fb_id": null,
      "tw_id": null
    },
    "tags": null
  },
  "unsuccessful_purchase": {
    "amount": "330.00",
    "currency": "RUB",
    "discount": "0.00",
    "channel": {
      "id": "WIDGET",
      "title": "WIDGET"
    },
    "tickets": [
      {
        "event": {
          "id": "33345",
          "title": "\"AVTODOR\" - \"ZENIT\"",
          "date": "2015-10-14T18:00:00Z",
          "city": "Саратов"
        },
        "type": {
          "id": "150030",
          "title": "Сектор 1",
          "price": "165.00"
        },
        "count": 2
      }
    ],
    "payment": {
      "id": "1496121",
      "provider": "CloudPayments"
    },
    "reason": {
      "id": "NOT_ENOUGH_MONEY",
      "description": "Недостаточно средств"
    },
    "user_id": "121212",
    "creation_date": "2015-01-01T21:00:00Z"
  },
  "host_id": "2778"
}' "https://transaction-service-marketing.testhost.ru/customer_transactions"
Check out the latest version of a transaction sample with UTM labels, tags and survey here: https://gist.github.com/SlavaBobik/b6299d2d64042bc8b2a9528a0ac1839d
In order to build customer segments based on events or to launch an automation based on events, add events to the platform.
Event object
POST /events
{
   id string            REQUIRED 
   title string         REQUIRED
   date datetime        REQUIRED 
   city string          REQUIRED
   host_id string       REQUIRED
}


curl -X POST -H "Content-Type: application/json; charset=utf-8" -H "Authorization: token d7aac27b8c984527a38673028d02058c54520dbfb0ed" -d '{
    "id" : "my_id",
    "title": "Заголовок",
    "date": "2019-01-12T12:02:12Z",
    "city": "Санкт-Петербург",
    "host_id": "477"
}' "http://transaction-service-marketing.testhost.ru/events"