Исходящий обмен сообщениями - отличный подход, и я бы выбрал это направление для интеграции с одним SObject, когда это возможно.Однако, если вам нужно передать какую-либо форму связанного списка (отношение master-detail / lookup), вам придется заняться этим другим способом, так как исходящий обмен сообщениями срабатывает только на одном объекте за один раз .Вы можете настроить несколько исходящих сообщений, чтобы обойти это, но это может быстро стать неуправляемым.JavaScript, безусловно, выполним, но использование SOAP или REST из Apex более надежно и безопасно.
Я предпочитаю REST / HTTP, поскольку у Apex возникли проблемы с потреблением сложного WSDL из внешних систем.На самом деле Apex не может использовать API Force.com или API метаданных по размерам.Но встроенные классы HTTPRequest / HTTPResponse из Apex, использующие встроенные классы XMLStream / DOM или System.JSON для анализа результатов, работают очень хорошо, imo.