All Systems Operational
Past Incidents
Jan 18, 2017
Highlights:

- New Dropbox and Dropbox for Business V2 Elements
*New upgraded Dropbox and Dropbox for Business elements using version 2 of the Dropbox API

- Updated the element usage chart in the dashboard
*Added the number of calls to the Usage pie chart on the Dashboard in addition to the percentage of calls made by each element.

- New analytics APIs
*There are some new additions to the analytics APIs for both formulas and events.
*Formulas:
- /formulas/analytics/accounts: See formula execution counts aggregated by account ID. This is mainly useful for organization admins that have multiple accounts within the organization.
- /formulas/analytics/instances: See formula execution counts aggregated by formula instance ID. This is helpful to see which formula instances are being executed at what frequency.
*Events:
- You'll find the new events analytics APIs under 'Instances' within the 'Platform' section of the API docs. That's because events are associated with one or more element instances, so the analytics are based on the element instances themselves. Events include both polling and webhook activity.
- /instances/events/analytics: See the total number of events for each interval within a time period.
- /instances/events/analytics/accounts: See the number of events aggregated by account ID. Again, this is mainly useful for organization admins that have multiple accounts in the organization.
- /instances/events/analytics/instances: See the number of events aggregated by element instance ID. This is helpful to see what frequency each element instance is getting events.
*Check out the API documentation for even more details!

- Added clarification for using SalesForce Marketing Cloud APIs
*The descriptions of activities endpoints now include explanations for use and the relationship between activities and Salesforce Marketing Cloud "Journeys".
*The description of the GET /contacts API now includes information on how to relate contacts to custom Salesforce Marketing Cloud AttributeGroups and AttributeSets.
*GET /contacts/attribute-groups has been added as a subresource. This API lets you collect the custom data objects that are associated with contacts. Data from this subresource is useful for creating and retrieving contacts more effectively.

- Added support for XML based bulk data download
*Added support for conversion of CSV or JSON bulk downloads to XML format.
*Bulk data can be downloaded in XML format by setting the Accept: text/xml header on the GET /bulk/{id}/{objectName} API call.

- Added Zendesk side loading functionality
*Enables side loading of Zendesk incidents, users, groups, agents, and incident comments.
*For example, on a request to GET /incidents, you would send a where parameter of includes = 'users,groups'.

- Added Hubspot batch upload
*Hubspot bulk upload now has the option to use their batch upload API to upload contacts. A bulk upload will use this API only if the metaData parameter is passed with {"useBatchUpload": "true"}. The maximum number of records is 100, but can also be set lower via the metaData.
*Using this batch functionality will help lower the number of API calls made to Hubspot, however there are also some downfalls to using it. If one record in the batch fails, the entire batch fails. The batch upload to Hubspot acts like an upsert and is asynchronous with only an initial confirmation that the request was successful. There is no confirmation or way to verify when the job has completed. The documentation for the batch API used can be found here: http://developers.hubspot.com/docs/methods/contacts/batch_create_or_update
Jan 18, 09:07 MST
Jan 17, 2017

No incidents reported.

Jan 16, 2017

No incidents reported.

Jan 15, 2017
Highlights:

- Allowed GET /bulk/{id}/{objectName}/data from element request step
*Most bulk APIs cannot be used from a formula elementRequest step. However, you can now use the GET /bulk/{id}/{objectName}/data API, if you need it.

- Fixed an issue in the Hubspot Marketing Cloud element
*We fixed an issue with the DELETE /lists/{id}/contacts/{id} API that was causing an Internal Server Error after deleting the contact from the selected list.

- Added new property for MS Dynamics pick lists
*There is a new property called extendedAttributeValue that, if present, is used to populate values when posting or patching records, without having to make multiple calls to get the value.

- New pagination handling for vendors/resources that don't support it
*In Element Builder, you can now choose whether the vendor supports pagination, by resource. If the vendor does not support pagination, then we will take care of it on our end.

- Added Docusign environment configuration
*The Docusign environment can now be specified when provisioning an instance.

- New SFTP Element
*There is a new SFTP element in the Cloud Storage & Documents Hub
*Events and search are not supported, as SFTP doesn't provide mechanisms for these functions.

- New GoToWebinar element
*There is a new GoToWebinar element in the Conferencing Hub, including functionality for events. Try it out!

- Moved the hash/checksum validation to the bulk query
*Moved the hash/checksum validation for bulk to be performed during the bulk query instead of the bulk download. This is because the bulk download may timeout when performing the validation for a large number of records.
*Also started the migration of the the request parameters for the POST /bulk/query API to be passed in via the body rather than query. This is because there are a large number of parameters, so passing them via the query was getting unwieldy. Also, passing query parameters to a POST API is not a best practice either
*To use the body, the following JSON can be used to pass parameters to the POST /bulk/query operation -
{
"query": ,
"from": ,
"to": ,
"lastRunDate": ,
"continueFromJobId": ,
"requestPath": ,
"composite": ,
"validationData": {
"identifierFieldName": ,
"updatedDateField": ,
"updatedDateFormat":
}
}
*The validationData map is optional, and if specified, will be used to perform the hash/checksum validation

- Additional Eloqua resources
*New resources for the Eloqua element including Create, Retrieve, Update, Delete, and Search for:
/content-sections
/emails
/email-footers
/email-headers
/landing-pages

- Fixed bug with updating a Formula Instance
*Previously, when calling the PUT /formulas/:id/instances/:id API, the response that was returned did not have any of that Formula Instance's configuration values in it. The response now returns the fully updated Formula Instance.

- Fixed URL Encoding Issue in ShareFile POST /files
*After this fix, there is no longer an issue in POST /files when the filename provided has spaces or special characters.
Jan 15, 22:15 MST
Jan 14, 2017

No incidents reported.

Jan 13, 2017

No incidents reported.

Jan 12, 2017

No incidents reported.

Jan 11, 2017
Highlights:

- Allowed GET /bulk/{id}/{objectName}/data from element request step
*Most bulk APIs cannot be used from a formula elementRequest step. However, you can now use the GET /bulk/{id}/{objectName}/data API, if you need it.

- Fixed an issue in the Hubspot Marketing Cloud element
*We fixed an issue with the DELETE /lists/{id}/contacts/{id} API that was causing an Internal Server Error after deleting the contact from the selected list.

- Added new property for MS Dynamics pick lists
*There is a new property called extendedAttributeValue that, if present, is used to populate values when posting or patching records, without having to make multiple calls to get the value.

- New pagination handling for vendors/resources that don't support it
*In Element Builder, you can now choose whether the vendor supports pagination, by resource. If the vendor does not support pagination, then we will take care of it on our end.

- Added Docusign environment configuration
*The Docusign environment can now be specified when provisioning an instance.

- New SFTP Element
*There is a new SFTP element in the Cloud Storage & Documents Hub
*Events and search are not supported, as SFTP doesn't provide mechanisms for these functions.

- New GoToWebinar element
*There is a new GoToWebinar element in the Conferencing Hub, including functionality for events. Try it out!

- Moved the hash/checksum validation to the bulk query
*Moved the hash/checksum validation for bulk to be performed during the bulk query instead of the bulk download. This is because the bulk download may timeout when performing the validation for a large number of records.
*Also started the migration of the the request parameters for the POST /bulk/query API to be passed in via the body rather than query. This is because there are a large number of parameters, so passing them via the query was getting unwieldy. Also, passing query parameters to a POST API is not a best practice either
*To use the body, the following JSON can be used to pass parameters to the POST /bulk/query operation -
{
"query": ,
"from": ,
"to": ,
"lastRunDate": ,
"continueFromJobId": ,
"requestPath": ,
"composite": ,
"validationData": {
"identifierFieldName": ,
"updatedDateField": ,
"updatedDateFormat":
}
}
*The validationData map is optional, and if specified, will be used to perform the hash/checksum validation

- Additional Eloqua resources
*New resources for the Eloqua element including Create, Retrieve, Update, Delete, and Search for:
/content-sections
/emails
/email-footers
/email-headers
/landing-pages

- Fixed bug with updating a Formula Instance
*Previously, when calling the PUT /formulas/:id/instances/:id API, the response that was returned did not have any of that Formula Instance's configuration values in it. The response now returns the fully updated Formula Instance.
Jan 11, 13:01 MST
Jan 10, 2017
Resolved - We have identified and resolved the issue with "scheduled job" and some formula execution delays. The platform is back to normal processing. Please let us know if you experience any further issues.
Jan 10, 15:06 MST
Identified - We have identified one of the causes of the degradation and are taking steps to resolve the problem. We are still seeing some job delays, but will send another update when we have further resolution.
Jan 10, 11:18 MST
Investigating - We are currently experiencing a degradation in the scheduled jobs that run in the platform. This affects polling and any formulas set to run on a cron. We will send an update when we have identified the cause and can communicate a resolution.
Jan 10, 10:02 MST
Jan 9, 2017
Resolved - Events are now processing normally.
Jan 9, 18:34 MST
Monitoring - The event queue continues to be processed, and the event delay is coming down. There is still currently a delay, but we will send another update when things return to normal.
Jan 9, 14:58 MST
Identified - We have identified that event handling is delayed in our US production environment. This will impact syncing between services, and callbacks to external URLs. We are currently working on the event queue to get events flowing through normally. Will send another update soon.
Jan 9, 14:08 MST
Highlights:

- Added Bulk download support for GoodData element
*The GoodData element now includes Bulk download APIs.

- Enhanced Salesforce bulk upload to support bulk update or delete
*Salesforce bulk upload enhancement to do bulk update or delete by passing action as a metaData parameter
*Optional metaData for the bulk upload API would be { "action" : "update" }

- Added console log output for event hooks
*Elements Builder event hooks now display console.log output.

- Bulk hash/checksum validation for more elements, including MS Dynamics
*Enhanced the bulk download hash/checksum validation to leverage the bulk date properties, which in turn simplifies the JSON query string metadata required by the bulk download API for hash/checksum validation
*Also, all elements that have the bulk date properties implemented can now leverage the hash/checksum validation functionality

- New formula analytics APIs
*Three new formula analytics APIs make it easier to get insight into the frequency and characteristics of formula executions that are running under your account or organization.
- /formulas/analytics: Retrieve the total number of executions for each interval over a period of time.
- /formulas/analytics/statuses: Retrieve the number of executions that succeeded and failed for each interval over a period of time.
- /formulas/analytics/steps: Retrieve the average, sum, and percentiles for step execution time, step execution delay, and context size.
**Step execution time: The time it took for the step to execute. This metric is tracked in milliseconds.
**Step execution delay: The amount of time between the execution of consecutive steps in a formula. We use a queuing model to execute formula steps, so there is a possibility of a delay between step executions. This metric is tracked in milliseconds.
**Context size: Each step retains a context of values from previous steps and general formula information. This can grow as the formula executes, and is tracked with this metric in bytes.
*As an organization admin, providing a list of account IDs will include analytics for formula executions under those specified accounts. If left blank, all accounts would be included.

- Fixed Postgresql element POST endpoints when there is no primary key
*Postgresql element APIs now work properly when there is no primary key on the table. The POST to the endpoint now returns status code 200 with record results.

- Control native data type conversion for bulk CSV to JSON
*When converting CSV bulk downloads to JSON, the conversion of data types was being inferred from the string value. For example, the string "836478" was converted to a long value of 836478. However, this sometime led to false positives wherein fields like a postal code of "00345" was converted to an integer of 345, and the preceding zeros were pruned.
*To address this issue, a couple of changes have been made:
- A new query option has been added to the GET /bulk/{jobId}/{objectName} API to return all string types without converting the response data fields to native types. To use this option, the following query string needs to be provided for the API - bulk/{jobId}/{objectName}?json={ "convertToNativeType": "false" }. The default for the convertToNativeType value is true, primarily for backwards compatibility.
- If the convertToNativeType is omitted or set to true, then the conversion code first tries to find the configured data type of the field/attribute via the object discovery APIs, and use that data type. So, using a Salesforce.com contact as an example, the MailingPostalCode field is a string, so a postal code value of "00345" will be returned as a string of "00345", even when conversion is set to true. If a given field type is not found via the object discovery APIs, then the data type is inferred as it was before this change was implemented.

- New Bullhorn element
*New Bullhorn element in the CRM Hub with capabilities for bulk and events!

- Added events to the Wrike element
*Added webhook event support to the Wrike element, try it out!
Jan 9, 09:15 MST
Jan 8, 2017

No incidents reported.

Jan 7, 2017

No incidents reported.

Jan 6, 2017

No incidents reported.

Jan 5, 2017

No incidents reported.

Jan 4, 2017
Highlights:

- Added Bulk download support for GoodData element
*The GoodData element now includes Bulk download APIs.

- Enhanced Salesforce bulk upload to support bulk update or delete
*Salesforce bulk upload enhancement to do bulk update or delete by passing action as a metaData parameter
*Optional metaData for the bulk upload API would be:
{
"action" : "update"
}

- Added console log output for event hooks
*Elements Builder event hook fix to correctly display console.log output

- Bulk hash/checksum validation for more elements, including MS Dynamics
*Refactored the bulk download hash/checksum validation to leverage the bulk date properties, which in turn simplifies the JSON query string metadata required by the bulk download API for hash/checksum validation
*Also, all elements that have the bulk date properties implemented can now leverage the hash/checksum validation functionality

- New formula analytics APIs
*Three new formula analytics APIs make it easier to get insight into the frequency and characteristics of formula executions that are running under your account or organization.
- /formulas/analytics: Retrieve the total number of executions for each interval over a period of time.
- /formulas/analytics/statuses: Retrieve the number of executions that succeeded and failed for each interval over a period of time.
- /formulas/analytics/steps: Retrieve the average, sum, and percentiles for step execution time, step execution delay, and context size.
**Step execution time: The time it took for the step to execute. This metric is tracked in milliseconds.
**Step execution delay: The amount of time between the execution of consecutive steps in a formula. We use a queuing model to execute formula steps, so there is a possibility of a delay between step executions. This metric is tracked in milliseconds.
**Context size: Each step retains a context of values from previous steps and general formula information. This can grow as the formula executes, and is tracked with this metric in bytes.
*As an organization admin, providing a list of account IDs will include analytics for formula executions under those specified accounts.

- Fixed Postgresql element POST endpoints when there is no primary key
*Postgresql element APIs now work properly when there is no primary key on the table. The POST to the endpoint now returns 200 with record results.

- Control native data type conversion for bulk CSV to JSON
*When converting CSV bulk downloads to JSON, the conversion of data types was being inferred from the string value. For example, the string "836478" was converted to a long value of 836478. However, this sometime led to false positives wherein fields like a postal code of "00345" was converted to an integer of 345, and the preceding zeros were pruned.
*To address this issue, a couple of changes have been made:
1. A new query option has been added to the GET /bulk/{jobId}/{objectName} API to return all string types without converting the response data fields to native types. To use this option, the following query string needs to be provided for the API - bulk/{jobId}/{objectName}?json={ "convertToNativeType": "false" }. The default for the convertToNativeType value is true, primarily for backwards compatibility.
2. If the convertToNativeType is omitted or set to true, then the conversion code first tries to find the configured data type of the field/attribute via the object discovery APIs, and use that data type. So, using a Salesforce.com contact as an example, the MailingPostalCode field is a string, so a postal code value of "00345" will be returned as a string of "00345", even when conversion is set to true. If a given field type is not found via the object discovery APIs, then the data type is inferred as it was before this change was implemented.

- New Bullhorn element
*New Bullhorn element in the CRM Hub with capabilities for bulk and events!

- Added events to the Wrike element
*Added webhook event support to the Wrike element, try it out!
Jan 4, 09:42 MST