The Stack Overflow podcast is back! Listen to an interview with our new CEO.
12

Outbound messaging implements an at least once delivery protocol on top of SOAP, the server will try to send the message until it has been actively acknowledged by the receiver (by returning true in the soap response). The server will back-off the retry interval after each failure. One thing to be aware of is that a single SOAP message can contain data for ...


12

Web Application to Salesforce You don't state the technology your web application is built with, however the Salesforce REST and SOAP API's provide a full CRUD based API to the data in Salesforce, such that you can use these API's to callout from the appropriate place in your code. Salesforce to Web Application The Salesforce Streaming API is not ideal ...


10

Three points Yes, the can be buffered or rather collated, so that if you did a mass update or insert, you'll get up to 100 notifications in a single soap call. Make sure you handle that in your client. (That said, single record updates should result almost immediately in an outbound message being sent.) Is your workflow rule correct, there isn't a logical ...


7

From SF documentation: The order in which individual actions and types of actions are executed is not guaranteed. However, field update actions are executed first, followed by other actions. http://na6.salesforce.com/help/doc/en/workflow_rules_considerations.htm So basically, you can be assured that the field updates will occur first, but the order of ...


6

You can monitor the outbound messages which have queued up for failed delivery at Setup > Monitoring > Outbound Messages


6

http://requestb.in will let you see the XML that an outgoing message will send. So basically you need to do the following: Add requestbin url in remote sites of your salesforce instance Get a requestb.in endpoint from requestbin website (click "Create a RequestBin") Specify the requestBin endpoint in your outgoing message Trigger your outgoing message (it'...


6

The outbound message includes the OrganizationId as a parameter. Before I discovered that, I built a formula field on the object using the $organization global variable to pass the org ID, which works as well. Then you can configure your integration to determine which org it's coming from and process appropriately. I sent a simple outbound message that ...


6

For me it has been frustrating to have them in place because there is no response logging mechanism, as far as I'm aware. This lack exacerbates the difficulty of having asymmetric validations in place. In practice, that means that often, a record will save but fail to sync. And we can't determine why simply by looking at Salesforce. Thankfully we have ...


5

The error message indicates that the salesforce server started parsing the soap/xml response from your outbound messaging listener, but it got the end of the response data before it got the the valid end of the xml structure. As indicated in the other answers link, this can be for many reasons which you'll need to work through, a bug in your listeners code (...


5

The diagram in Understanding Outbound Messaging is helpful here. It shows Outbound messages starting from a workflow trigger. So the question becomes, which objects and associated fields can be used in a workflow? The ToolingAPI exposes WorkflowRule. The object that the workflow rule applies to is stored in the TableEnumOrId field. The enum (for example,...


5

Salesforce auto generates the XML format of the message that is sent to external system. You do not need to provide a WSDL to salesforce if you are implementing an outbound messaging. Only Endpoint uRL is required. How to create a listener SFDC gives you the WSDL when you create a workflow outbound message that can be used to create a listener . However if ...


5

There's no documented minimum, and its subject to change, but its in the order of 2-5 seconds [depending on various things such as the performance of your endpoint]. However your latter comment highlights an issue, OM is at least once delivery, even if you ack the response that might not make it back to salesforce, and the messages will get delivered again, ...


5

You cannot use local host on salesforce. Your service had to be exposed on the internet. A quick and easy way to expose the local host to the internet would be using ngrok . ngrok allows you to expose a web server running on your local machine to the internet. Just tell ngrok what port your web server is listening on.


5

TL;DR - your message cannot be delivered and the system stops trying. I don't believe you can access Salesforce's Dead Letter Queue for Outbound Messages. To understand what a Dead Letter Queue is, you may wish to read the definition on Wikepedia: In message queueing the dead letter queue is a service implementation to store messages that meet one or ...


4

You can't control this, the background delivery process will deliver whatever is ready the next time it checks, although it is unusual to not get bunched notifications when you update multiple rows in a single transaction.


4

Yes, you can use the same endpoint for multiple outbound messages (Since the endpoint is defined on a per message basis) as long as the endpoint supports receiving multiple types.


4

We finally found the problem! Salesforce.com does not support SNI. You must use IP-based SSL. If you're trying to make an outbound HTTPS request from SFDC to your server which is hosted in some cloud platform (Windows Azure in our case) then chances are you are using SNI for SSL. SNI allows multiple SSL certificates to be assigned to the same IP address....


4

I can't say there are any drawbacks.. Its just finding the right use case and applying which option to go with when integrating Salesforce with an external system.. With so many options around to integrate Salesforce with other applications, Lightning Connect Callouts Outbound Messaging Appexchange Packages Middleware / ETL Tools it comes down to ...


4

As per Documentation there is no limit for Outbound message per day. From what I am aware there isn't a limit on the number of outbound messages sent. API limit is only for incoming API calls. Outbound Message and APEX Callout is not counted in this limit. note that despite being on "Unlimited Edition" you are limited in the number of API calls that you can ...


4

If you look at Salesforce Developer Limits Quick Reference | Workflow Limits: The immediate actions and each time trigger can have: 10 email alerts 10 tasks 10 field updates 10 outbound messages 10 flow triggers2 So it seems the only limit on outbound messages is number of callouts per rule.


3

No Unfortunately outbound messages are very limited in configuration, you get your fields, session id, and the object id and that's pretty much it which means no access to the request headers. Option 1 - Apex Apex callouts support header access which will let you do HTTP basic authentication. Option 2 - Proxy I haven't used it with outbound messages, ...


3

You might want to look at Post Sandbox Refresh Steps. I'm not saying it's the right way to disable/reconfigure them manually but that's what it seems to happen widely in the community ;) I don't think you can do much with Outbound Messages. In the past I've benefited from having some kind of proxy between Salesforce and my target system so I've been ...


3

If Account is the parent and Product_Code__c is the child, then you will need a Roll-up Summary (RSF) field on Account that counts the number of Product_Code__c children. Let's call it Account.Product_Code_count__c The RSF will only work if Product_Code__c is a detail in a master-detail relationship; if using lookup relationships - use Andrew Fawcett's ...


3

This workflow rule fire some time trigger which are currently in pending. for exa: if this field update send email after 30 days or if this record created or no update in last thirty days then send email something like that. Try to find and delete them first. Then you will be able to delete the WF. Update: To find the WF Queue When a workflow rule that has ...


3

Nick, actually messages older than 24hrs aren't delivered at all. From the same document: If the endpoint is unavailable, messages will stay in the queue until sent successfully or until they are 24 hours old. After 24 hours, messages are dropped from the queue. Many customers/developers/architects/consultants often mistake outbound messaging to provide ...


3

The XML will look something like: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <notifications xmlns="http://soap.sforce.com/2005/09/outbound" xmlns:ns2="urn:sobject.enterprise.soap.sforce.com"> <OrganizationId>00DK00000000001AAA</OrganizationId> <ActionId>04k70000000L1TLAA0</ActionId> <SessionId ...


2

No this is not currently possible, you'd have to use the option to send a sessionId in the message and have your listener make an API call back to saleforce to get the related records it needs.


2

Check the OM monitoring log, sounds like the app might not be seeing your ACK, and is retrying the delivery.


2

according to the documentation its id of the workflow rule:: ActionId string The workflow rule (action) that triggers the message. you can not query Workflow's using SOQL, but you can run a listMetadata call against the MetaData API that will return a list of workflow rules and record ids http://www.salesforce.com/us/developer/docs/api_meta/Content/...


2

Your question seems to reference two ways of consuming Web Services, both are independent of each other. Outbound Workflow actions have very specific requirements that this service will likely not meet if its been designed independently. So using Outbound Workflow may not be possible, unless you go back to the service provider to change. Otherwise you can ...


Only top voted, non community-wiki answers of a minimum length are eligible