Well, my first comment is that custom authentication is outside the TOS, but it sounds like you've got that covered. Kind of surprised they didn't pitch you on what a great investment those customer portal licenses, ahem, sorry, community license are.
Since you're program is talking to Salesforce on behalf of non-Users, you'll want to have a single API ...
Yes it's possible to group by custom fields in general, but not all field types are groupable.
The docs aren't particularly helpful from what I can see, and just tell you a field is groupable if it's describe field result has a groupable value of true.
IFIRC, you can group by pretty much anything, except DateTime, Long Text Areas, and Formulas, but ...
Workflow rules always execute for single and mass edit UI actions, and for normal API calls. The Import Wizard can disable workflow rule actions, and administrative mass edits (e.g. Replace Picklist Value) will not trigger workflow rules. Also, some other actions, such as transferring record ownership, also will not trigger workflow rules. See the page ...
In addition to sfdcfox pointing out that you generally login to a sandbox at https://test.salesforce.com, there is another option. Since you are using my domain you can login through its URL:
Production URL: https://mydomain.my.salesforce.com
Sandbox URL: https://mydomain--sandboxName.[Instance].my.salesforce.com. Note that the instance can change when the ...
You have an array of objects, so you should use:
List<SalesData> resultList =
The problem is that you told the JSON parser that it was expecting a single SalesData object. Instead, we have to tell the JSON parser to expect a ...
Yes, every object with history tracking enabled has queryable shadow object. In this case it's simply AccountHistory.
Just experiment with query similar to this
SELECT AccountId, Account.Name, CreatedBy.Name,CreatedDate,Field, OldValue,NewValue
ORDER BY AccountId, CreatedDate DESC
Are you trying to install the graphicsmagick library? If so, you might want to check out this buildpack: https://elements.heroku.com/buildpacks/xerpa/heroku-buildpack-graphicsmagick
Also, if you need a particular linux library, you can install with the apt-get buildpack
I hear you using the term "business logic", yet you're also talking about connectivity API's to talk with external Databases. In SF language, that's normally referred to as "technical architecting". Business logic is what an application does for a user ("After 15 days, create Task to send follow up email to Contact", is an example of business logic). As much ...
Workflows do get fired when data is inserted or edited from the API .
One exceptional case we have observed it does not is when data is synced through outlook using salesforce for outlook.
Also if the setting is everytime the record is created or edited in workflow and if criteria is satisfied each time record is inserted or edited workflow rules execute ...
The key seems to be two-fold -
Adding a (NULL) value attribute to the SendableDataExtensionField and SendableSubscriberField objects
Despite the documentation stating that the SendableSubscriberField specifies EmailAddress (or _SubscriberKey if the account dictates), the object actually expects Email Address (with the space in between the words).
Upsert has two modes of operation. The first is to create a record if no ID is specified, or update the record if an ID is specified, and the second is to take an "external ID" and create a record if no matching external ID is found, or update the record if exactly one external ID is found. In this case, you're using the former mode of operation, and that's ...
If you are using the standard endpoints, such as POST /vXX.X/sobjects/Account or PATCH /vXX.X/sobjects/Account/id, then yes, you can only create or update one at a time.
The bulk API, or even the SOAP API, can be used to upload multiple objects at the same time.
You can also create your own APEX REST endpoint. As an example:
Expanding my comment into an answer.
I'd suggest you considered using the new Change Data Capture feature instead. Synchronization of Salesforce data to an external persistent store is exactly what it's made for; it allows your application to listen for change events and provides for replay and recovery should you miss portions of the event stream (within a ...
The AA2 is appended to the standard 15 character ID to make it case insensitive.
E.g. a00i0000009cDXN and a00i0000009cDXNAA2 are the same ID in Salesforce. The former is case sensitive and the later is case insensitive. Case insensitive ID's are useful for some applications where the casing may not be correctly maintained (Excel).
See What are Salesforce ...
The SOAP API can return up to 2000 records at a time. If there are more records, then you will also be returned a QueryLocator which you can then use to do QueryMore call. You need to repeat the QueryMore multiple times until you get everything. See http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_querymore.htm
I would set up a new Triggered Send definition in the account and then call it manually using either the SOAP or REST API's. Populate the Triggered Send request with the info of the new subscriber you just successfully added. There are a couple ways to do this with ET's APIs.
If you don't need the new > v20.0 features, you can still use it verbatim for some time. It really isn't much more than a wrapper for things you'd do yourself if you used SoapClient (I've done this for a small Drupal module).
Of course, you can just drop a v31.0 WSDL in the appropriate place, and it should work just fine. I wouldn't just change the endpoint,...
Using "patch", the limit is 1. That's because this API is really intended for mobile devices, of which you'll usually be working with one record at a time. Also, it's considered the RESTful design, embedding the id into the URI, and using HTTP verbs to manipulate data.
There are alternatives, though. You could use the REST Bulk API to make a batch you can ...
Use the partner WSDL. Please note that you have to put this to URL like http://yourServer/yourPartnerWsdl.xml - it won't work using a local path like /var/www/whatever/yourPartnerWsdl.xml
You will get errors directly in PHP. Therfore your Error settings has to be set in php.ini to something like
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
So I got it working.
I had to change the Content-Type header to application/x-www-form-urlencoded, which I tried because of this answer.
Unfortunately the docs don't tell you that. In fact they say the opposite, which is super frustrating.
You're very close - the tricky bit is that the Chatter REST API is expecting a multipart form. Also, it wants the message segments as its own array. After some poking around it looks like the easiest way to handle it is by wrangling the post data together.
I'm using this doc as a base: http://www.salesforce.com/us/developer/docs/chatterapi/Content/...
The answer to this appears to be here:
Please re-create your HubExchange app in CODE@ App Center and make
sure during the create wizard you specify the correct needed
permissions. For this functionality you will need Read and Write
access for the Lists and Subscribers section.
What you are looking to do is create a dynamic newsletter - which is something ExactTarget can send with ease. There are a few steps to be able to reproduce the scenario you are hoping to accomplish, based on the sample emails you linked to.
First off, you will need to make some decisions on how your list will be segmented. In other words, ...
Can you post your curl command?
Also are you passing the security token?
Please see this. Have you passed the username param?
Error using Session Id auth with cURL following REST documentation
If you are using Mac or Linux, see this:
From the RecurringDonations trigger code I linked in my comment above (which subsequently calls the RecurringDonations class), it seems that on line 131 it's calling Decimal.valueOf(r.Installments__c). Neglecting to pass in a value for the Installments__c field would give you the error you're seeing. I'm not very familiar with the NPSP, but just because this ...