New answers tagged

0

Activation: Just capture it in your browser, the frontend uses: POST /legacy/v1/beta/automations/filetrigger/ {"publish":true,"fileTriggerProgramId":"--ID--"} But the ID is GUID not UUID so you need to use a diffent endpoint to get the automations then the previous comment suggests GET /legacy/v1/beta/automations/automation/...


1

Try this. It is not an elegant way to solve this problem, but perhaps it should work. Create a Named Credential. Select Identity Type as "Named Principle". Authentication Protocol as "Password Authentication". Write any meaningful Username and paste your access-token in the "Password" field. Disable"Generate Authorization ...


0

You can also check the API version from the developer console. SELECT Id, NamespacePrefix, Name, ApiVersion, Status FROM ApexClass where NamespacePrefix = ''


1

There are 2 possible ways: Using relationship queries [Select Id, Name, (Select Id, Email from Contacts) from Account where ...] You can access the related contacts for each account record using accountRecord.Contacts https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_relationships_query_using.htm Using cross ...


0

Use a sub-query: SELECT Id, ..., (SELECT Id, Name, ... FROM Contacts) FROM Account WHERE ... Note that for each account, a separate cursor (nextUrl) may also be generated for the contacts if there's more than 2,000 contacts on a single account (less, if a lot of fields are selected).


1

Yes, you can re-use your installed package for other Journey Builder events or integrations. I'm not sure there's a definitive best practice on managing your installed packages, but my personal preference is for creating a separate package for each system or vendor that's integrating with your Salesforce Marketing Cloud account. In this way, auditing your ...


0

Figured it out, While I did not have any permission set assignments, I did have a permission set group assignment which contained a permission set with the "API Only" user permission. I feel silly for not having checked this earlier but I am glad to have figured it out.


0

After comparing my Postman setup to my Apex code again, I realized that my endpoint was missing the "/api/ppp_loan_forgiveness_requests/" section at the end. After making that change, I no longer receive the 403 error code. Now I receive the 400 error code. That said, this question is resolved I say as 400 is a different issue(field validation). ...


2

You may have messed up the authorization header. The documentation shows: Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b Which means you probably meant to: request.setHeader('Authorization', 'Token '+etranDetails.API_Key__c);


0

I had the same problem and solved it using Platform Events. Didn't see anyone mentioning this solution, so here it is... Create a new Platform Event (object) with fields necessary for your callout. Use process builder (or flow, or API, or APEX) to publish it. Create a "Platform Event-Triggered Flow" with your API callout. This flow will now be ...


0

It's because there are Login IP ranges enabled for your profile. Remove/delete them-->Reset your security token-->create Login IP Ranges again . To check the range of IPs enabled:: Go to Profile-->Profile Overview-->Login IP Ranges.


0

It turns out the issue is that Pardot Sandbox accounts use a different API endpoint (this isn't mentioned anywhere in the Pardot API documentation). Instead of using the route: https://pi.pardot.com/api/{{objectName}}/version/{{versionNumber}}/do/{{operation}} You need to include demo in the base URL: https://pi.demo.pardot.com/api/{{objectName}}/version/{{...


2

No, the only way with a Server-to-Server integration is to provide the info in the json format they provided. You do have the option of using a 'web' or 'public app' option to help keep your client_id and secret more secure from the requester, but it requires a bit more of a 'hullabaloo' to accomplish, which may not be feasable for some. You would need to ...


0

When using OAuth, the Named Credentials automatically stores the Access Token and Refresh Token. When making a callout using Named Credentials, Apex will automatically try the Access Token first, and if it gets a 403, it will try the Refresh Token to get a new Access Token, and try again, and if that fails, then throws the appropriate error. This all happens ...


0

Perhaps you could try to add some more logic to your code, in which you first get a contact's exit status from a journey, if needed remove a contact from a journey, and then try to add him once again.. I wrote a quick sample: function getStatus(token) { var config = { url : 'your rest base uri here' + "/interaction/v1/interactions/...


0

I would suggest the use of Platform Events. You can create a structure with the type of operation (Create/Update) and the related record Id (in case you need to query information on Mulesoft afterwards). Then you can publish them using Process Builder with the neccessary criteria and/or Apex triggers. Best regards!


1

Since you format to GMT you know that the timezone offset will always be 00:00. Hence you can simply do: Datetime startDate = Datetime.newInstanceGmt(2020, 7, 21, 20, 40, 00); String startDate2 = startDate.formatGmt('yyyy-MM-dd\'T\'HH:mm:ss') + '+00:00'; System.debug('StartDate: ' + startDate2); (That I create a Datetime instance with newInstanceGmt was ...


1

Use JSON.serialize to automatically format the body: request.setBody( JSON.serialize( new Map<String, Object> { 'PlacementId' => intCan.Name, 'CandidateId' => intCan.Id, 'OwnerId' => '000001', 'StartDate' => intCan.Training_Class_Start_Date__c, 'Status' => 'Internal',...


2

The performance of operations on a Salesforce org may vary based on a wide variety of factors, including The overall load in your org, for some operations such as asynchronous code. The overall load on the instance where your org lives. The data volume in your org, including both overall quantity and data shape issues like skew. Some of these things are ...


1

It sounds like this was a field that was created and set required, but not populated on all accounts. Therefore, you need to include a valid, non-null value for the account status field in your payload, or disable the required attribute on this custom field.


0

SoapFaultException extends ConnectionException which extends Exception. That means default Exception (Throwable) methods are available with SoapFaultException like getCause(), getMessage(), and getStackTrace(). Try calling those instead, specifically getMessage() which returns the message passed to the Exception constructor: public static Object querySf(...


0

API call limit is only for inbound calls. Outbound calls are governed by the per transaction and maximum timeout limits. Reference: Salesforce Developer Limits Quick Reference


0

I would personally recommend if its a once daily process to have SFMC drop a CSV file to an FTP for ingestion of your service. It is usually an easier and less process heavy option. That aside, you can check out my article here for some samples on how to integrate a 3rd party system to SFMC via REST API. As your use case seems to be an external system ...


0

This is doable. But there is a problem with REST routes, the Data extension has no documented REST routes that you can use for retrieve purpose.That means if you use it you are on your own.| With SOAP here is how its done: https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/retrieving_data_from_a_data_extension.htm


3

As the error message suggests, Salesforce has a notion of "restriction" on a picklist. When a picklist is restricted, input to that field is validated and clamped to the set of picklist values that are already present in Salesforce Setup, in the application's schema. When a picklist is not restricted, you can place any value in that field, whether ...


0

These additional JSON attributes would not be recorded to the sendlog. You would need to pass the message of the SMS and include these as variables in the message. Your message body would be something like: %%[ set @message_name = 'Welcome" set @messagetext = 'Welcome to code@" ]%% %%=v(@messagetext)=%% If your SMS send log had fields labeled ...


0

So we managed to solve this by the help of a collegue here. This is our working code: public String Etl() throws ETSdkException, RemoteException { ETClient client = new ETClient("fuelsdk.properties"); String response = client.getSoapConnection().getEndpoint(); //get soap stub Soap soapClient=client....


Top 50 recent answers are included