README.md in intercom-0.2.3 vs README.md in intercom-0.3.0

- old
+ new

@@ -40,11 +40,11 @@ ```ruby user = Intercom::User.find_by_email("bob@example.com") user.custom_data["average_monthly_spend"] = 1234.56 user.save -user = Intercom::User.find_by_user_id("bob@example.com") +user = Intercom::User.find_by_user_id("1") user = Intercom::User.create(:email => "bob@example.com", :name => "Bob Smith") user = Intercom::User.new(params) user.save Intercom::User.all.count Intercom::User.all.each {|user| puts %Q(#{user.email} - #{user.custom_data["average_monthly_spend"]}) } @@ -79,9 +79,57 @@ #### Notes ```ruby Intercom::Note.create(:email => "bob@example.com", :body => "This is the text of the note") ``` + +#### Events +The simplest way to create an event is directly on the user +```ruby +user = Intercom::User.find_by_email("bob@example.com") +user.track_event("invited-friend") +``` + +For more control create events through Intercom::Event +```ruby +Intercom::Event.create(:event_name => "invited-friend", :user => user) + +# With an explicit event creation date +Intercom::Event.create(:event_name => "invited-friend", :user => user, :created_at => 1391691571) + +# With metadata +Intercom::Event.create(:event_name => "invited-friend", :user => user, + metadata => { + :invitee_email => 'pi@example.org', + :invite_code => 'ADDAFRIEND' + } +) +``` + +Metadata Objects support a few simple types that Intercom can present on your behalf + +```ruby +Intercom::Event.create(:event_name => "placed-order", :user => current_user, + metadata => { + :order_date => Time.now.to_i, + :stripe_invoice => 'inv_3434343434', + :order_number => { + :value => '3434-3434', + :url => 'https://example.org/orders/3434-3434' + }, + price: { + :currency => 'usd', + :amount => 2999 + } + } +) +``` + +The metadata key values in the example are treated as follows- +- order_date: a Date (key ends with '_date'). +- stripe_invoice: The identifier of the Stripe invoice (has a 'stripe_invoice' key) +- order_number: a Rich Link (value contains 'url' and 'value' keys) +- price: An Amount in US Dollars (value contains 'amount' and 'currency' keys) ### Errors ```ruby Intercom::AuthenticationError Intercom::ServerError