Webhooks - Events & Objects
Below is the list of all the current webhooks available for you to use. Each webhook event will return data specific to the action that occurred on the site. You’ll see below that each event has corresponding objects that are returned. Even further below, you can see exactly what fields are returned with those objects.
Sales
- sale_new - Add-on was purchased
- demokey_created - Demo key issued to an affiliate (simulated sale)
- trial_will_convert - 3 days before a trial is set to convert to paid (credit card transactions only, excludes PayPal)
- trial_converted - Trial converted from free to paid status
- subscription_will_renew - 7 days before a yearly subscription is set to renew (credit card transactions only, excludes PayPal)
- subscription_renewed - Subscription was renewed for another term
- subscription_cancelled - Subscription was cancelled
- trial_cancelled - Trial was cancelled
- refund_issued - A refund was issued
- question_created - A pre-sale Question was asked
- question_comment_created - Comment was added to a Question (private conversation between seller and member)
License Management
- usercount_changed - Number of valid users on a license key was changed
- no_license_24hours - The license key has not been validated within the first 24 hours. Likely that the add-on has not yet been installed.
Customer Support
- case_created - Support case was created
- case_updated - Support case was updated (subject, description or status changed)
- verification_created - Verification was left
- verification_updated - Verification was updated
- review_created - Review was left
- review_updated - Review was updated
- case_comment_created - Comment was added to a Suport Case
- documentation_comment_created - Comment was added to a Documentation page
- verifications_comment_created - Comment was added to a Verification (private conversation between seller and member)
- review_comment_created - Comment was added to a Review (private conversation between seller and member)
Webhook Event Details
sale_new - For each item that is successfully purchased in an order, a sale_new event will be dispatched. Data to be passed in the webhook request:
- addon - The add-on purchased that was purchased.
- lineitem - Specific details pertaining to this particular item and sale.
- member - The data of the member who purchased the product.
- licensekey - The license key associated with the item purchased. Even if you aren't currently using the SuiteCRM Store Licensing API, all purchases on the SuiteCRM Store are given unique license keys. This allows for flexibility if you ever wanted to enable SuiteCRM Store licensing.
demokey_created - For each demo key issued, a demokey_created event will be dispatched. Data to be passed in the webhook request:
- addon - The add-on for which the demo key was issued.
- member - The data of the member who was issued the demo key.
- licensekey - The license key associated with the demo key issued.
trial_will_convert - 3 days before a trial is set to convert to paid (credit card transactions only, excludes PayPal), a trial_will_convert event will be dispatched. Data to be passed in the webhook request:
- addon - The add-on purchased that was purchased.
- lineitem - Specific details pertaining to this particular item and sale.
- member - The data of the member who purchased the product.
- licensekey - The license key associated with the item purchased. Even if you aren't currently using the SugarOutfitters Licensing API, all purchases on SugarOutfitters are given unique license keys. This allows for flexibility if you ever wanted to enable SugarOutfitters licensing.
trial_converted - When a trial converts to paid, a trial_converted event will be dispatched. Data to be passed in the webhook request:
- addon - The add-on purchased that was purchased.
- lineitem - Specific details pertaining to this particular item and sale.
- member - The data of the member who purchased the product.
- licensekey - The license key associated with the item purchased. Even if you aren't currently using the SuiteCRM Store Licensing API, all purchases on the SuiteCRM Store are given unique license keys. This allows for flexibility if you ever wanted to enable SuiteCRM Store licensing.
subscription_will_renew - 7 days before a yearly subscription is set to renew (credit card transactions only, excludes PayPal), a subscription_will_renew event will be dispatched. Data to be passed in the webhook request:
- addon - The add-on purchased that was purchased.
- lineitem - Specific details pertaining to this particular item and sale.
- member - The data of the member who purchased the product.
- licensekey - The license key associated with the item purchased. Even if you aren't currently using the SugarOutfitters Licensing API, all purchases on SugarOutfitters are given unique license keys. This allows for flexibility if you ever wanted to enable SugarOutfitters licensing.
subscription_renewed - When a subscription renews itself, a subscription_renewed event will be dispatched. Data to be passed in the webhook request:
- addon - The add-on purchased that was purchased.
- lineitem - Specific details pertaining to this particular item and sale.
- member - The data of the member who purchased the product.
- licensekey - The license key associated with the item purchased. Even if you aren't currently using the SuiteCRM Store Licensing API, all purchases on the SuiteCRM Store are given unique license keys. This allows for flexibility if you ever wanted to enable SuiteCRM Store licensing.
subscription_cancelled - When a subscription is cancelled, a subscription_cancelled event will be dispatched. Data to be passed in the webhook request:
- addon - Related add-on information that the subscription was cancelled for.
- lineitem - Specific details pertaining to the original item and sale for this subscription.
- member - The data of the member who cancelled the subscription.
- licensekey - The license key associated with the cancelled subscription. Even if you aren't currently using the SuiteCRM Store Licensing API, all purchases on the SuiteCRM Store are given unique license keys. This allows for flexibility if you ever wanted to enable SuiteCRM Store licensing.
- quitreason - The data containing why the subscription was cancelled.
trial_cancelled - When a trial is cancelled, a trial_cancelled event will be dispatched. Data to be passed in the webhook request:
- addon - Related add-on information that the trial was cancelled for.
- lineitem - Specific details pertaining to the original item and sale for the trial.
- member - The data of the member whom the refund was issued to.
- licensekey - The license key associated with the refunded item. Even if you aren't currently using the SuiteCRM Store Licensing API, all purchases on the SuiteCRM Store are given unique license keys. This allows for flexibility if you ever wanted to enable SuiteCRM Store licensing.
- quitreason - The data containing why the trial was cancelled.
refund_issued - When a refund is issued, a refund_issued event will be dispatched. Data to be passed in the webhook request:
- addon - The add-on that the refund was issued for.
- lineitem - Specific details pertaining to the original item and sale that the refund was issued for.
- member - The data of the member who was issued the refund.
- licensekey - The license key associated with the issued refund. Even if you aren't currently using the SuiteCRM Store Licensing API, all purchases on the SuiteCRM Store are given unique license keys. This allows for flexibility if you ever wanted to enable SuiteCRM Store licensing.
usercount_changed - When the number of users on a license key changes values, a licensekey_updated event will be dispatched. Data to be passed in the webhook request:
- licensekey - The license key that changed (includes user count info).
- member - The owner of the license key that changed.
- addon - The add-on the license key is related to.
licensekey_changed - When the number of users on a license key changes values, a licensekey_updated event will be dispatched. Data to be passed in the webhook request:
- licensekey - The license key that changed.
- member - The owner of the license key that changed.
- addon - The add-on the license key is related to.
no_license_24hours - If a license key has not been successfully validated within the first 24 hours, a no_license_24hours event will be dispatched. Data to be passed in the webhook request:
- licensekey - The license key that changed.
- member - The owner of the license key that changed.
- addon - The add-on the license key is related to.
case_created - When a new support case is created, a case_created event will be dispatched. Data to be passed in the webhook request:
case_updated - When a new support case is updated, a case_updated event will be dispatched. Data to be passed in the webhook request:
- case - The updated case data
- member - The creator of the case
- addon - The add-on the case is related to.
verification_created - When a new version verification is left for your add-on, a verifiedversion_created event will be dispatched. Data to be passed in the webhook request:
- verification - The verification data
- member - The creator of the case
- addon - The add-on the verification is related to.
verification_updated - When a Verification has been changed, a verification_updated event will be dispatched. Data to be passed in the webhook request:
- verifiedversion - The updated case data
- member - The creator of the case
- addon - The add-on the verification is related to.
review_created - When a new review is left for your add-on, a review_created event will be dispatched. Data to be passed in the webhook request:
- review - The review data
- member - The creator of the case
- addon - The add-on the review is related to.
review_updated - When a review has been updated, a review_updated event will be dispatched. Data to be passed in the webhook request:
- review - The updated case data
- member - The creator of the case
- addon - The add-on the review is related to.
question_created - When a new question is asked for your add-on, a question_created event will be dispatched. Data to be passed in the webhook request:
- question - The question data
- member - The creator of the question
- addon - The add-on the question is related to.
case_comment_created - When a new comment is left on a Case a case_comment_created event will be dispatched. Data to be passed in the webhook request:
- comment - The data from the comment
- member - The member who left the comment
- case - The support Case the comment was left on
- addon - The add-on the case & comment are related to
documentation_comment_created - When a new comment is left on a Documentation page a documentation_comment_created event will be dispatched. Data to be passed in the webhook request:
- comment - The data from the comment
- member - The member who left the comment
- document - The Documentation page the comment was left on
- addon - The add-on the documentation page & comment are related to
verification_comment_created - When a new comment is left on a Verification a verification_comment_created event will be dispatched. Data to be passed in the webhook request:
- comment - The data from the comment
- member - The member who left the comment
- verification - The Verification the comment was left on
- addon - The add-on the verification & comment are related to
review_comment_created - When a new comment is left on a review a review_comment_created event will be dispatched. Data to be passed in the webhook request:
- comment - The data from the comment
- member - The member who left the comment
- review - The Review the comment was left on
- addon - The add-on the review & comment are related to
question_comment_created - When a new comment is left on a question a question_comment_created event will be dispatched. Data to be passed in the webhook request:
- comment - The data from the comment
- member - The member who left the comment
- question - The Question the comment was left on
- addon - The add-on the question & comment are related to
Returned Object Data Models
- id (integer) - Unique identifier across all other events
- webhook (string) - The name of the event that has occurred
- created_at (integer, GMT unix timestamp) - The timestamp the event was created
- data (array) - This is the most important piece. It contains an array of the all the related objects needed to properly handle the event that occurred.
- attempt (integer) - (For future use)
- object (string) - The name of the object, which in this case is event.
- id (integer) - Unique identifier across all other add-ons
- name (string) - The full name of the add-on
- shortname (string) - The URL-safe name of the add-on
- url (string) - The direct URL to the add-on on the SuiteCRM Store
- updated_at (integer, GMT unix timestamp) - the timestamp the page was created on the SuiteCRM Store.
- created_at (integer, GMT unix timestamp) - The timestamp the add-on was created on the SuiteCRM Store
- object (string) - The name of the object, which in this case is addon.
- id (integer) - Unique identifier across all other purchased items
- plan_id (integer)
- plan_name (string) - Name of the plan purchased
- order_number (integer) - The associated order number with the purchased item
- price (float, USD) - The list price for the add-on plan purchased
- number_users (integer) - If the item is structured as a "Per User Pricing", this will contain how many users this purchase is good for. If it's not a "Per User Pricing" item, it will be null.
- subtotal (float, USD) - The pre-tax and pre-discount amount. This number will be different from the value of 'price' if it's a "Per User Pricing" structure. For example, if the price is 10.00 and it's a per user plan with number_users being 5, the subtotal value would be 50.00.
- discount (float, USD) - The amount of the discount applied to this specific item. You are able to create Coupons to give customers discounts.
- tax (float, USD) - Depending on the location of the purchaser, tax may be applied to their order. This number represents the amount of tax applied for this specific item.
- total (float, USD) - The total amount for this specific item (after adding taxes and removing any discounts, if applicable). If the item is a trial, this is what the customer will pay when the trial converts to paid.
- payout_amount (float, USD) - After the SuiteCRM Store
- trial (boolean) - If true, the purchased item represents this purchase is a new 30-day trial. If false, it's a non-trial, regular purchase.
- trial_ends (integer, GMT unix timestamp) - If trial is true, this will represent the timestamp when the 30-day trial will end and will charge the customer if they have not since cancelled the trial. If trial is false, this will be null.
- trial_status (string) - “Trialing”, “Trial Cancelled”, “Trial Converted”, null if not a trial line item
- subscription (boolean) - Is this a recurring subscription line item, true if yes, false if no
- subscription_status (string) - “Active” or “Cancelled”, null if it’s not a subscription line item
- structure (string) - Represents the payment structure for the add-on plan. Possible values are: "Flat Pricing" or "Per User Pricing"
- frequency (string) - Represents the payment frequency for the add-on plan. Possible values are: "One-time Fee", "Monthly Fee" and "Yearly Fee"
- created_at (integer, GMT unix timestamp) - The timestamp the item was purchased
- object (string) - The name of the object, which in this case is lineitem.
- id (integer) - Unique identifier across all other members
- username (string) - The username the member uses to login to the SuiteCRM Store
- display_name (string) - The name the member provides to be identified throughout the site. In many cases, this is the same as the username because the default display_name is set to whatever the member's username is.
- email (string) - The email address of the member.
- company (string) - The company associated with the member.
- url (string) - The direct URL to the member's public profile on the SuiteCRM Store
- object (string) - The name of the object, which in this case is member.
- key (32 character alphanumeric string) - The unique key identifier with this license record. It is associated to a specific add-on plan and member on SugarOutfitters.
- user_count (integer) - If the associated add-on plan tracks number of users, this field represents the current number of users the license is good for.
- active (boolean) - If true, the key is currently active and in good standing from a billing perspective. If false, it is currently not a valid license key and will not pass a validation check against the SugarOutfitters Licensing API.
- updated_at (integer, GMT unix timestamp) - the timestamp the page was created on SugarOutfitters.
- created_at (integer, GMT unix timestamp) - The timestamp the key was created.
- trialing_until (integer, GMT unix timestamp) - If existss, when the license key is good until. Used for issued demo keys.
- object (string) - The name of the object, which in this case is licensekey.
- plan_id (integer) - Unique identifier for the plan
- plan_name (string) - Name of the plan purchased
- id (integer) - Unique identifier across all other comments
- content (string, html) - This will contain the actual comment content.
- url (string) - The direct link to the comment on the SuiteCRM Store. If this is null, it is because the parent record (case, documentation, etc.) has been deleted.
- created_at (integer, GMT unix timestamp) - The timestamp the comment was left.
- top_level_comment (boolean) - If true, the new comment is a top level comment. If false, the comment is in reply to another comment. If it's in reply to a previous comment, the data below will be populated.
- in_response_to_id (integer) - Unique identifier of the parent comment across all other comments. If the comment is a top level comment, this will be null.
- in_response_to_content (string, html) - This will contain the actual parent comment content that the comment event was in reply to. If the comment is a top level comment, this will be null.
- in_response_to_url (string) - The direct link to the parent comment on the SuiteCRM Store. If the comment is a top level comment, this will be null.
- in_response_to_created_at (integer, GMT unix timestamp) - The timestamp the parent comment was left.
- object (string) - The name of the object, which in this case is comment.
- id (integer) - Unique identifier across all other document pages
- title (string) - The title of the documentation page
- shortname (string) - The URL-safe name for the documentation page
- url (string) - The direct link to the documentation page on the SuiteCRM Store
- updated_at (integer, GMT unix timestamp) - the timestamp the page was created on the SuiteCRM Store.
- created_at (integer, GMT unix timestamp) - the timestamp the page was created on the SuiteCRM Store.
- object (string) - The name of the object, which in this case is document.
- id (integer) - Unique identifier across all other reviews
- rating (float) - Numerical rating of the add-on. Range is 0.0 through 5.0.
- review (string) - The written review about the add-on. It's possible for members to simply leave a star rating without a review. If the review is empty, the value will be null.
- url (string) - The direct link to the review on the SuiteCRM Store
- updated_at (integer, GMT unix timestamp) - the timestamp the page was created on the SuiteCRM Store.
- created_at (integer, GMT unix timestamp) - the timestamp the page was created on the SuiteCRM Store.
- object (string) - The name of the object, which in this case is review.
- id (integer) - Unique identifier across all other support cases
- subject (string) - The subject of the support case
- url (string) - The direct link to the support case on the SuiteCRM Store
- type (string) - The type of support case. It has two possible values: "Bug" or "Feature".
- status (string) - the status of the support case. It has three possible values: "Open", "In-progress" or "Closed".
- description (string, html) - The written description of the case.
- updated_at (integer, GMT unix timestamp) - the timestamp the page was created on the SuiteCRM Store.
- created_at (integer, GMT unix timestamp) - the timestamp the case was created on the SuiteCRM Store.
- object (string) - The name of the object, which in this case is case.
- id (integer) - Unique identifier across all other verifications
- sugarcrm_version (string) - The specific SuiteCRM Version the member verified to work or not work
- url (string) - The direct link to the verification on the SuiteCRM Store
- status (string) - This field indicates whether or not the member claims the add-on works for the specified version of SuiteCRM. It has two possible values: "positive" meaning it works, or "negative" meaning it does not work.
- updated_at (integer, GMT unix timestamp) - the timestamp the page was created on the SuiteCRM Store.
- created_at (integer, GMT unix timestamp) - the timestamp the verification was created on the SuiteCRM Store.
- object (string) - The name of the object, which in this case is verification.
- id (integer) - Unique identifier across all other questions
- question (string, html) - The question that was asked
- url (string) - The direct link to the question on the SuiteCRM Store
- created_at (integer, GMT unix timestamp) - the timestamp the question was asked on the SuiteCRM Store.
- object (string) - The name of the object, which in this case is question.
- changed_crm (boolean) - If true, the customer canceled due to changing CRMs
- crm_name (string) - The name of the CRM that the customer changed to
- testing (boolean) - If true, the customer was testing the add-on for a future project
- not_needed (boolean) - If true, the customer did not need the add-on anymore
- not_tried (boolean) - If true, the customer was not able to try the add-on yet
- install_issues (boolean) - If true, the customer had issues installing or setting up the add-on
- lack_of_support (boolean) - If true, the customer could not get the support needed to get the add-on working
- quit_reason (string, html) - Contains additional information about why the customer quit
- created_at (integer, GMT unix timestamp) - the timestamp of when the customer quit