{"id":7741,"date":"2022-11-20T23:07:16","date_gmt":"2022-11-21T04:07:16","guid":{"rendered":"https:\/\/www.jitendrazaa.com\/blog\/?p=7741"},"modified":"2022-11-20T23:07:16","modified_gmt":"2022-11-21T04:07:16","slug":"salesforce-bulk-api-2-using-mulesoft","status":"publish","type":"post","link":"https:\/\/www.jitendrazaa.com\/blog\/integration\/mulesoft\/salesforce-bulk-api-2-using-mulesoft\/","title":{"rendered":"Salesforce Bulk API 2 using Mulesoft"},"content":{"rendered":"\n<p><a href=\"https:\/\/developer.salesforce.com\/docs\/atlas.en-us.api_asynch.meta\/api_asynch\/bulk_common_diff_two_versions.htm\">Bulk API 2<\/a> is a new &amp; better way of handling bulk record processing in Salesforce than the previous Bulk API. A few of the advantage of Bulk API 2 is automatic retries of failed records, a governor limit of 24 hours based on the number of records processed instead of batch job count, automatic handling of batch size, etc. More detail of comparison can be found in <a href=\"https:\/\/developer.salesforce.com\/docs\/atlas.en-us.api_asynch.meta\/api_asynch\/bulk_common_limits.htm\">Salesforce documentation here<\/a>. <\/p>\n\n\n\n<p>This article &amp; video is assuming that you know the basics of <a href=\"https:\/\/www.jitendrazaa.com\/blog\/?s=mulesoft\">Mulesoft<\/a>. Coming back to this post, We would be using Mulesoft to insert contacts using Bulk API 2. One of the caveats of bulk API is that Dataloader still does not support Bulk API 2. It takes a little more time than the data loader in Mulesoft to use Bulk API 2 but it&#8217;s worth it and better compared to some other tools.<\/p>\n\n\n\n<p>In summary, there are 3 steps that need to happen to use Bulk API 2 to insert records<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a request in Salesforce by Sending a CSV file<\/li>\n\n\n\n<li>Keep Retrying by checking the status of the job <\/li>\n\n\n\n<li>Retrieve results<\/li>\n<\/ol>\n\n\n\n<p>In Mulesoft, we are using the below components<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HTTP Request to read CSV file. We can also use a file reader instead of an HTTP request<\/li>\n\n\n\n<li>Using Salesforce Component &#8211; <strong>Create Job bulk API v 2<\/strong> (image Er-2.1)\n<ul class=\"wp-block-list\">\n<li>Choose Object Type<\/li>\n\n\n\n<li>sObjects needs CSV content and we can use payload as input<\/li>\n\n\n\n<li>Line ending &#8211; CRLF or LF depending on your configuration<\/li>\n\n\n\n<li>Column delimiter &#8211; COMMA<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>To get the status of the job, we are using component &#8211; <strong>Get job state bulk API v 2<\/strong><\/li>\n\n\n\n<li>We are using <strong>Until Successful <\/strong>component in Mulesoft to keep retrying<\/li>\n\n\n\n<li>once we get the status, we use the <strong>Choice<\/strong> component. We are raising an error if the state is not <strong>JobComplete<\/strong> or <strong>Failed<\/strong>. A list of all valid states can be <a href=\"https:\/\/developer.salesforce.com\/docs\/atlas.en-us.api_asynch.meta\/api_asynch\/get_job_info.htm\">found here<\/a><\/li>\n<\/ul>\n\n\n\n<p>Below image shows how each components are connected &amp; sequenced, it would give you good idea on what needs to be done.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"339\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/Using-Bulk-API-2-in-Mulesoft.png?resize=1024%2C339&#038;ssl=1\" alt=\"\" class=\"wp-image-7746\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/Using-Bulk-API-2-in-Mulesoft.png?resize=1024%2C339&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/Using-Bulk-API-2-in-Mulesoft.png?resize=300%2C99&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/Using-Bulk-API-2-in-Mulesoft.png?resize=768%2C254&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/Using-Bulk-API-2-in-Mulesoft.png?w=1355&amp;ssl=1 1355w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">Mulesoft flow to use Bulk API 2<\/figcaption><\/figure>\n\n\n\n<p>To test the below flow, you can use <a href=\"https:\/\/www.postman.com\/\">postman<\/a>. Make sure you set the Body type as Binary and choose CSV file. You can <a href=\"https:\/\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/SampleContact3.csv\">use this CSV file as a sample to save time<\/a>. Make sure to replace AccountId with AccountId in your Org. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Below is the Configuration XML<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n\n&lt;mule xmlns:ee=&quot;http:\/\/www.mulesoft.org\/schema\/mule\/ee\/core&quot; xmlns:salesforce=&quot;http:\/\/www.mulesoft.org\/schema\/mule\/salesforce&quot;\n\txmlns:http=&quot;http:\/\/www.mulesoft.org\/schema\/mule\/http&quot;\n\txmlns=&quot;http:\/\/www.mulesoft.org\/schema\/mule\/core&quot; xmlns:doc=&quot;http:\/\/www.mulesoft.org\/schema\/mule\/documentation&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http:\/\/www.mulesoft.org\/schema\/mule\/core http:\/\/www.mulesoft.org\/schema\/mule\/core\/current\/mule.xsd\nhttp:\/\/www.mulesoft.org\/schema\/mule\/http http:\/\/www.mulesoft.org\/schema\/mule\/http\/current\/mule-http.xsd\nhttp:\/\/www.mulesoft.org\/schema\/mule\/salesforce http:\/\/www.mulesoft.org\/schema\/mule\/salesforce\/current\/mule-salesforce.xsd\nhttp:\/\/www.mulesoft.org\/schema\/mule\/ee\/core http:\/\/www.mulesoft.org\/schema\/mule\/ee\/core\/current\/mule-ee.xsd&quot;&gt;\n\t&lt;http:listener-config name=&quot;HTTP_Listener_config&quot; doc:name=&quot;HTTP Listener config&quot; doc:id=&quot;b3f7540e-a465-4b2d-ad4d-46fc56cb1637&quot; &gt;\n\t\t&lt;http:listener-connection host=&quot;0.0.0.0&quot; port=&quot;8081&quot; \/&gt;\n\t&lt;\/http:listener-config&gt;\n\t&lt;salesforce:sfdc-config name=&quot;Jit29Org&quot; doc:name=&quot;Salesforce Config&quot; doc:id=&quot;6f407f5c-ccfa-4db6-befa-3ced16196c0e&quot; &gt;\n\t\t&lt;salesforce:basic-connection username=&quot;youremail@gmail.com&quot; password=&quot;somepwd&quot; \/&gt;\n\t&lt;\/salesforce:sfdc-config&gt;\n\t&lt;flow name=&quot;jit29backupFlow2&quot; doc:id=&quot;fa954752-faf4-4e78-bdd6-c44bf54b398b&quot; &gt;\n\t\t&lt;http:listener doc:name=&quot;\/bulkInsert&quot; doc:id=&quot;73773cb4-9f69-4700-8518-63cea055b444&quot; config-ref=&quot;HTTP_Listener_config&quot; path=&quot;\/bulkInsert&quot;\/&gt;\n\t\t&lt;salesforce:create-job-bulk-api-v2 doc:name=&quot;Create job bulk api v 2 - Contact&quot; doc:id=&quot;810bb823-d58c-4901-8e5f-9d18ebdc727a&quot; config-ref=&quot;Jit29Org&quot; objectType=&quot;Contact&quot; operation=&quot;insert&quot; lineEnding=&quot;CRLF&quot; doc:description=&#039;output application\/java&amp;#10;---&amp;#10;{&amp;#10;\tLastName: payload.LastName,&amp;#10;\tMobilePhone: payload.MobilePhone,&amp;#10;\tEmail: payload.Email,&amp;#10;\tAccountId:&quot;0011U000014hIcIQAU&quot;&amp;#10;}&#039;&gt;\n\t\t&lt;\/salesforce:create-job-bulk-api-v2&gt;\n\t\t&lt;set-variable value=&quot;#&#x5B;payload.id]&quot; doc:name=&quot;jobId&quot; doc:id=&quot;2cd419b4-286c-44b0-9ba6-b80ca20a7437&quot; variableName=&quot;jobId&quot;\/&gt;\n\t\t&lt;logger level=&quot;INFO&quot; doc:name=&quot;Logger&quot; doc:id=&quot;ebf27c8a-16e4-4a67-a437-369df8ba01e9&quot; message=&#039;Job status is #&#x5B;vars.jobstate] Before making job status request. Job ID - #&#x5B;vars.jobId]&#039;\/&gt;\n\t\t&lt;until-successful maxRetries=&quot;3600&quot; doc:name=&quot;Until Successful&quot; doc:id=&quot;76d0ffbb-0ff5-4ef8-acfb-43455c2e5af9&quot; millisBetweenRetries=&quot;5000&quot;&gt;\n\t\t\t&lt;salesforce:get-job-state-bulk-api-v2 doc:name=&quot;Get job state bulk api v 2&quot; doc:id=&quot;b9bff670-b903-4a0b-8258-4d45d428bdb2&quot; config-ref=&quot;Jit29Org&quot; id=&quot;#&#x5B;vars.jobId]&quot; \/&gt;\n\t\t\t&lt;set-variable value=&quot;#&#x5B;payload.state]&quot; doc:name=&quot;update jobstate&quot; doc:id=&quot;4fd26c43-00e0-483b-b8c6-44541b5e110f&quot; variableName=&quot;jobstate&quot; \/&gt;\n\t\t\t&lt;choice doc:name=&quot;Check Job State&quot; doc:id=&quot;7d2d53d8-503c-4960-b685-cdce6ef81795&quot; &gt;\n\t\t\t\t&lt;when expression=&#039;#&#x5B;vars.jobstate == &quot;JobComplete&quot;]&#039;&gt;\n\t\t\t\t\t&lt;logger level=&quot;INFO&quot; doc:name=&quot;Logger&quot; doc:id=&quot;94810163-b26d-46e2-8f63-2bd75b26b0a6&quot; message=&quot;Records Processed Succesfully in Salesforce&quot; \/&gt;\n\t\t\t\t\t&lt;salesforce:retrieve-job-failed-results-bulk-v2 doc:name=&quot;Retrieve job failed results bulk v 2&quot; doc:id=&quot;eff1b41a-20ee-46e6-adbf-b9ca22df655d&quot; config-ref=&quot;Jit29Org&quot; id=&quot;#&#x5B;vars.jobId]&quot;\/&gt;\n\t\t\t\t&lt;\/when&gt;\n\t\t\t\t&lt;when expression=&#039;#&#x5B;vars.jobstate == &quot;Failed&quot;]&#039;&gt;\n\t\t\t\t\t&lt;logger level=&quot;INFO&quot; doc:name=&quot;Logger&quot; doc:id=&quot;b77237de-545d-46e6-aca1-3c171142f005&quot; message=&quot;Job Failed . #&#x5B;payload.errorMessage]. #&#x5B;payload.state]&quot;\/&gt;\n\t\t\t\t\t&lt;salesforce:retrieve-job-failed-results-bulk-v2 doc:name=&quot;Retrieve job failed results bulk v 2&quot; doc:id=&quot;5a3cf99b-b1d7-4263-bb5c-5d8bd720dcc2&quot; config-ref=&quot;Jit29Org&quot; id=&quot;#&#x5B;vars.jobId]&quot;\/&gt;\n\t\t\t\t&lt;\/when&gt;\n\t\t\t\t&lt;otherwise &gt;\n\t\t\t\t\t&lt;logger level=&quot;INFO&quot; doc:name=&quot;Logger&quot; doc:id=&quot;6c28b5d8-3486-4c03-96e4-678583e45bf2&quot; message=&quot;Going to Raise Exception&quot;\/&gt;\n\t\t\t\t\t&lt;raise-error doc:name=&quot;Raise error&quot; doc:id=&quot;5abedfd7-eb00-48c9-95b6-12c4a74fb185&quot; type=&quot;SF:JOB_IN_PROGRESS&quot; description=&quot;Bulk API 2 is still in progress&quot;\/&gt;\n\t\t\t\t&lt;\/otherwise&gt;\n\t\t\t&lt;\/choice&gt;\n\t\t&lt;\/until-successful&gt;\n\t\t&lt;logger level=&quot;INFO&quot; doc:name=&quot;Logger&quot; doc:id=&quot;1d00f918-2c4f-414c-a4c0-3f4ccf6cc687&quot; message=&quot;All Done&quot;\/&gt;\n\t\t&lt;logger level=&quot;INFO&quot; doc:name=&quot;Logger&quot; doc:id=&quot;f2e7fabe-d25d-4257-9be0-aa2cf2e89c94&quot; message=&quot;#&#x5B;payload]&quot;\/&gt;\n\t&lt;\/flow&gt;\n&lt;\/mule&gt;\n\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Salesforce Insert using Bulk API 2 in MuleSoft\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/sqEINlE1_9k?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Solving Common errors in Mulesoft while using Bulk API 2<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Error : InvalidBatch : Field name not found <\/h3>\n\n\n\n<p>There could be 2 reasons for this error<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>CSV file header not matching with Actual field API Name OR<\/li>\n\n\n\n<li>CSV file format is UTF-8. Salesforce does not understand UTF-8 CSV. It would accept plain CSV file<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error : LineEnding is invalid on user data. Current LineEnding setting is CRLF <\/h3>\n\n\n\n<p>Make sure the end-of-line setting in the MuleSoft property is set properly either to LF or CRLF as shown in image Er-2.1. To see what a line ending in your file is, open it in CSV and check the bottom right corner as shown in image Er-2.2<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"661\" height=\"716\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/LineEnding-is-invalid-on-user-data.-Current-LineEnding-setting-is-CRLF-Mulesoft.png?resize=661%2C716&#038;ssl=1\" alt=\"\" class=\"wp-image-7742\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/LineEnding-is-invalid-on-user-data.-Current-LineEnding-setting-is-CRLF-Mulesoft.png?w=661&amp;ssl=1 661w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/LineEnding-is-invalid-on-user-data.-Current-LineEnding-setting-is-CRLF-Mulesoft.png?resize=277%2C300&amp;ssl=1 277w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><figcaption class=\"wp-element-caption\">ER-2.1 Mulesoft Property Editor to set Line Ending for Bulk API 2<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"756\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/LineEnding-is-invalid-on-user-data.-Current-LineEnding-setting-is-CRLF-VSCode.png?resize=1016%2C756&#038;ssl=1\" alt=\"\" class=\"wp-image-7743\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/LineEnding-is-invalid-on-user-data.-Current-LineEnding-setting-is-CRLF-VSCode.png?w=1016&amp;ssl=1 1016w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/LineEnding-is-invalid-on-user-data.-Current-LineEnding-setting-is-CRLF-VSCode.png?resize=300%2C223&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/LineEnding-is-invalid-on-user-data.-Current-LineEnding-setting-is-CRLF-VSCode.png?resize=768%2C571&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">ER-2.2 Checking Line ending in VSCode for Bulk API 2.0<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Demo of using Bulk API 2 &#038; Solving most common errors<\/p>\n","protected":false},"author":1,"featured_media":7747,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"jz_research_post":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[454],"tags":[457,212],"class_list":["post-7741","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mulesoft","tag-mulesoft-4","tag-video-tutorial"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2022\/11\/Bulk-API-2-using-Mulesoft.png?fit=1920%2C1080&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":30699,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/complete-mulesoft-guide-40-expert-interview-questions\/","url_meta":{"origin":7741,"position":0},"title":"Complete MuleSoft Guide: 40+ Expert Interview Questions &amp; Answers","author":"Jitendra Zaa","date":"December 18, 2025","format":false,"excerpt":"Master MuleSoft interviews with 40+ expert questions covering API-led connectivity, DataWeave, Kafka, Salesforce integration, AI capabilities (Agentforce, MAC Project), CloudHub deployment, VPC\/VPN security, certifications, and career paths. Includes Gartner iPaaS 2025 insights.","rel":"","context":"In &quot;Integration&quot;","block_context":{"text":"Integration","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/integration\/"},"img":{"alt_text":"Complete MuleSoft Guide - 40+ Expert Interview Questions covering API-Led Connectivity, DataWeave, Agentforce AI, CloudHub VPC, Certifications, Career Path, Kafka Integration, and Gartner iPaaS 2025","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/mulesoft-interview-questions-2025-featured-new.png?fit=1200%2C704&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/mulesoft-interview-questions-2025-featured-new.png?fit=1200%2C704&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/mulesoft-interview-questions-2025-featured-new.png?fit=1200%2C704&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/mulesoft-interview-questions-2025-featured-new.png?fit=1200%2C704&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/mulesoft-interview-questions-2025-featured-new.png?fit=1200%2C704&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":6863,"url":"https:\/\/www.jitendrazaa.com\/blog\/integration\/mulesoft\/mulesoft-live-demo-alpharetta-developer-group-meet\/","url_meta":{"origin":7741,"position":1},"title":"Introduction to Mulesoft with Example &#8211; Alpharetta Developer Group Meet","author":"Jitendra","date":"June 17, 2019","format":false,"excerpt":"Slides and Video from Alpharetta Developer group meet - Loading data in Salesforce using Mulesoft 4","rel":"","context":"In &quot;Mulesoft&quot;","block_context":{"text":"Mulesoft","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/integration\/mulesoft\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/img.youtube.com\/vi\/sqWLC2I8Ozg\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":30732,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-b2c-commerce-cloud-complete-guide\/","url_meta":{"origin":7741,"position":2},"title":"Salesforce B2C Commerce Cloud Complete Guide","author":"Jitendra Zaa","date":"December 19, 2025","format":false,"excerpt":"Master Salesforce B2C Commerce Cloud with this comprehensive guide. Learn about Demandware's evolution, SFRA vs Headless architecture, Einstein AI capabilities, Cyber Week performance data (2020-2025), implementation best practices, and real-world customer success stories from Adidas, Puma, and L'Or\u00e9al.","rel":"","context":"In &quot;Mulesoft&quot;","block_context":{"text":"Mulesoft","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/integration\/mulesoft\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Salesforce-B2C-Commerce-Cloud-Complete-Guide-featured.png?fit=1200%2C630&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Salesforce-B2C-Commerce-Cloud-Complete-Guide-featured.png?fit=1200%2C630&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Salesforce-B2C-Commerce-Cloud-Complete-Guide-featured.png?fit=1200%2C630&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Salesforce-B2C-Commerce-Cloud-Complete-Guide-featured.png?fit=1200%2C630&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Salesforce-B2C-Commerce-Cloud-Complete-Guide-featured.png?fit=1200%2C630&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":6975,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-integration-patterns-best-practices-with-video\/","url_meta":{"origin":7741,"position":3},"title":"Salesforce Integration Patterns &#038; Best Practices &#8211; with Video","author":"Jitendra","date":"February 2, 2020","format":false,"excerpt":"When to use which integration patterns in Salesforce along with best practices. Video to show how to use Outbound message to integrate Salesforce without writing code","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Integration Patterns in Salesforce","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/02\/Integration-Patterns-in-Salesforce.png?fit=1200%2C425&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/02\/Integration-Patterns-in-Salesforce.png?fit=1200%2C425&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/02\/Integration-Patterns-in-Salesforce.png?fit=1200%2C425&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/02\/Integration-Patterns-in-Salesforce.png?fit=1200%2C425&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/02\/Integration-Patterns-in-Salesforce.png?fit=1200%2C425&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":30588,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/agentforce-vibes-the-complete-developer-guide-to-enterprise\/","url_meta":{"origin":7741,"position":4},"title":"Agentforce Vibes: The Complete Developer Guide to Enterprise Vibe Coding","author":"Jitendra Zaa","date":"December 15, 2025","format":false,"excerpt":"Complete guide to Salesforce Agentforce Vibes - enterprise vibe coding platform. Covers Vibe Codey, MCP integration, Einstein Trust Layer security, governor limits, and pro tips for Salesforce developers.","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Agentforce VibeCode","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Agentforce-VibeCode-1.png?fit=1200%2C248&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Agentforce-VibeCode-1.png?fit=1200%2C248&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Agentforce-VibeCode-1.png?fit=1200%2C248&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Agentforce-VibeCode-1.png?fit=1200%2C248&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2025\/12\/Agentforce-VibeCode-1.png?fit=1200%2C248&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":6739,"url":"https:\/\/www.jitendrazaa.com\/blog\/integration\/process-pipe-delimited-file-in-mulesoft-3\/","url_meta":{"origin":7741,"position":5},"title":"Use pipe delimited file to upsert record in Mulesoft 3","author":"Jitendra","date":"January 24, 2019","format":false,"excerpt":"Use Mulesoft to upsert record in Salesforce using Pipe delimited file","rel":"","context":"In &quot;Integration&quot;","block_context":{"text":"Integration","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/integration\/"},"img":{"alt_text":"Upsert record in Salesforce using Mulesoft","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2019\/01\/Upsert-record-in-Salesforce-using-Mulesoft.png?fit=500%2C215&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/7741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/comments?post=7741"}],"version-history":[{"count":2,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/7741\/revisions"}],"predecessor-version":[{"id":7749,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/7741\/revisions\/7749"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media\/7747"}],"wp:attachment":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media?parent=7741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/categories?post=7741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/tags?post=7741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}