# Aditya Naag Topalli > Aditya Naag Topalli is a developer advocacy leader and software engineer with 12+ years of experience across development, technical pre-sales, developer relations, and community growth. As Director of Developer Advocacy & Content Strategy (APAC) at Salesforce, he leads technical content strategy and developer education programs that have reached 100,000+ developers. Developer advocacy leader and software engineer with 12+ years of experience spanning hands-on development, technical pre-sales, technical leadership, developer relations, and community growth. As Director of Developer Advocacy & Content Strategy (APAC) at Salesforce, I lead technical content strategy, developer education, and ecosystem initiatives that have reached over 100,000 developers through videos, workshops, conferences, sample applications, and community programs. I still love building and prototyping with emerging technologies while helping developers understand, adopt, and build with them through code, content, and community. ## Profile - **Name**: Aditya Naag Topalli - **Role**: Director, Developer Advocacy & Content Strategy (APAC) at Salesforce - **Location**: Hyderabad, India - **Experience**: 12+ years across software development, technical pre-sales, technical leadership, developer relations, and community growth. - **Focus**: Developer advocacy, technical content strategy, developer education, and prototyping with emerging technologies. - **GitHub**: https://github.com/adityanaag3 - **LinkedIn**: https://in.linkedin.com/in/adityanaag3 - **X**: https://twitter.com/adityanaag - **Trailblazer**: https://trailblazer.me/id/adityanaag3 ## Pages - [Home](https://adityanaag.com/): Overview, work, speaking, videos, and certifications. - [Blog](https://adityanaag.com/blog/): Articles on Salesforce development, Lightning Web Components, and developer advocacy. ## Blog posts - [Output Invocation Mapping Error in Dynamic Choices of Einstein Bots](https://adityanaag.com/blog/output-invocation-mapping-error-in-dynamic-choices-of-einstein-bots/): I am sure most of you have started getting your hands dirty on Einstein Bots. If you have run into An operation invocation must contain at l… - [Does your chat end when Apex Action is called from Einstein Bot](https://adityanaag.com/blog/does-your-chat-end-when-apex-action-is-called-from-einstein-bot/): Unable to call an action from Salesfore Einstein Bot? Bot crashes when trying to fire Apex Actions? If you are one of those who is wondering… - [My First AppExchange Product - RestEZE](https://adityanaag.com/blog/my-first-appexchange-product-resteze/): The idea stemmed from the need to test multiple APIs our customer had allowed access to, from Salesforce IP Ranges only. This obviously mean… - [Preparing for Marketing Cloud Consultant Certification](https://adityanaag.com/blog/preparing-for-marketing-cloud-consultant-certification/): No different from any other consultant exam, you will face a lot of scenario based questions where most of the times, you will have to choos… - [Use an Email Service Address as Organization Wide Address](https://adityanaag.com/blog/use-an-email-service-address-as-organization-wide-address/): Whenever you add an email address as an Organization Wide Address, Salesforce sends a verification email to that address with a link you hav… - [Salesforce Ohana Meet](https://adityanaag.com/blog/salesforce-ohana-meet/): A 2 day event, first of its kind, which brought together "S.I."s (Systems Integrator - this is the first time I've heard this acronym by the… - [5 Useful Javascript Libraries](https://adityanaag.com/blog/5-useful-javascript-libraries/): A set of JavaScript libraries that I found useful when working on different projects. Datatable.js - Use this library to add advanced intera… - [Styling Visualforce PDFs](https://adityanaag.com/blog/styling-visualforce-pdfs/): The below guide is useful in cases when you want to Add Header and Footer to PDF Documents, Repeat Table Header on every page, add border to… - [Translating text in a Visualforce Page](https://adityanaag.com/blog/translating-text-in-a-visualforce-page/): Translation workbench, when enabled, translates most standard stuff into the users language. But how do you get a visualforce page translate… - [A whole new level of customization with Custom Buttons](https://adityanaag.com/blog/a-whole-new-level-of-customization-with-custom-buttons/): One of the various behaviors of Custom Button is Execute JavaScript, with a content source of OnClick JavaScript. They can not only execute… - [Export Apex Code Coverage to Excel](https://adityanaag.com/blog/export-apex-code-coverage-to-excel/): Tooling API proides a rich set of SOAP and REST interfaces that allow you to build custom development tools for Force.com applications. We u… - [Parsing JSON the easy way using Apex](https://adityanaag.com/blog/parsing-json-the-easy-way-using-apex/): In most of the integrations, you typically use HTTP Callouts to the endpoints defined by various services, and the most common response form… - [Predictable Iteration Order for Maps and Sets](https://adityanaag.com/blog/predictable-iteration-order-for-maps-and-sets/): Salesforce on 1st April has notified a change to the iteration order for unordered collections (maps and sets). It is changing the implement… - [Getting Started with Lightning!](https://adityanaag.com/blog/getting-started-with-lightning/): Here are a few points from the Meetup organized as a part of Salesforce1 Lightning Developer Week. Salesforce1 Lightning is an all new Compo… - [Thumbnails in VisualForce](https://adityanaag.com/blog/thumbnails-in-visualforce/): Most of the files uploaded to Chatter have a thumbnail next to them which shows the snapshot of the first page of the file.. Well, you too c… - [File Preview in Visualforce](https://adityanaag.com/blog/file-preview-in-visualforce/): Ever notice how cool, the preview functionality in Salesforce Chatter is? Well, you can reuse the same component that Salesforce does. Chatt… - [Execute Javascript from Formula field](https://adityanaag.com/blog/execute-javascript-from-formula-field/): Yes, formula fields can be used to execute javascript code on click. For this, we make use of the HYPERLINK Function. The syntax for it is - [Make PDF Files Download and not Open in Browser](https://adityanaag.com/blog/make-pdf-files-download-and-not-open-in-browser/): Most browsers have an inbuilt capability to execute certain types of files. When these types of files encountered in a URL, typically when y… ## Selected articles on the Salesforce Developers Blog - [Capture Engagement Events from Experience Cloud Using Data Cloud](https://developer.salesforce.com/blogs/2024/08/capture-engagement-events-from-experience-cloud-using-data-cloud): Explore how to set up an integration between Experience Cloud and Data Cloud to track engagement on your custom Lightning web components. - [Using Data Cloud Web SDK to Capture Engagement on Your Website](https://developer.salesforce.com/blogs/2024/04/using-data-cloud-web-sdk-to-capture-engagement-on-your-website): Learn to set up your Web SDK and the various features like Consent Management, User Management, and Sitemaps that the Web SDK offers. - [Load Data Programmatically with the Ingestion API](https://developer.salesforce.com/blogs/2023/07/load-data-programmatically-with-the-ingestion-api): Start harnessing the power and magic of Salesforce Data Cloud by loading data programmatically into Data Cloud using the Ingestion API. - [How to Use TypeScript with Salesforce – Part 2](https://developer.salesforce.com/blogs/2022/04/how-to-use-typescript-with-salesforce-part-2): In this second post in our two-part series on TypeScript, we discuss the various places that you can use TypeScript within the Salesforce ec… - [How to Use TypeScript with Salesforce – Part 1](https://developer.salesforce.com/blogs/2022/03/how-to-use-typescript-with-salesforce-part-1): TypeScript has been increasing in popularity over the last couple of years. In this post, we explore how it fits into the Salesforce develop… - [Working with CORS and CSP to Call APIs from LWC](https://developer.salesforce.com/blogs/2022/03/working-with-cors-and-csp-to-call-apis-from-lwc): Run into a Content Security Policy or CORS error when calling an API from Lightning Web Components? We explore the reasons behind these erro… - [Meet Kickboard: A Guided Whiteboard App for Digital Transformation](https://developer.salesforce.com/blogs/2022/01/meet-kickboard-a-guided-whiteboard-app-for-digital-transformation): Kickboard, a free and open source Salesforce Labs app, is a unique twist on a whiteboarding app built right on the Salesforce Platform with… - [Learn MOAR in Winter '22 with Updates to Our Open Source Apps](https://developer.salesforce.com/blogs/2021/09/learn-moar-in-winter-22-with-updates-to-our-open-source-apps): A few years ago, the Sample Gallery launched with a couple of open-source apps to showcase best practices for building on the Salesforce Pla… - [Learn MOAR with Spring '21: OpenAPI 3.0 Spec for REST API](https://developer.salesforce.com/blogs/2021/01/learn-moar-with-spring-21-openapi-3-0-spec-for-rest-api): Salesforce offers hundreds of well-documented REST and SOAP APIs. Learn how the new OpenAPI 3.0 spec lets external systems quickly consume t… - [Introducing a Planning Poker App Built on Salesforce and Heroku](https://developer.salesforce.com/blogs/2021/01/introducing-a-planning-poker-app-built-on-salesforce-and-heroku): Planning Poker is a popular consensus-based technique to estimate efforts of user stories in Scrum. We introduce an app that brings it to di… - [Sample Gallery Updates for Winter '21](https://developer.salesforce.com/blogs/2020/10/sample-gallery-updates-for-winter-21): Winter '21 brings great updates across the Customer 360 platform. The Developer Evangelism team has been busy bringing some of these updates… - [How to Build the Snake Game Using Lightning Web Components](https://developer.salesforce.com/blogs/2020/09/how-to-build-the-snake-game-using-lightning-web-components): We explore how to build the classic Snake game using Lightning Web Components, optimize its performance, and deploy it to any platform of ou… - [Error Handling Best Practices for Lightning Web Components](https://developer.salesforce.com/blogs/2020/08/error-handling-best-practices-for-lightning-web-components): Error handling is critical to any application and should be incorporated right from the design phase. We go over well-defined patterns and b… - [How to Securely Access Salesforce with Lightning Web Components Open Source](https://developer.salesforce.com/blogs/2020/04/how-to-securely-access-salesforce-with-lightning-web-components-open-source): When running LWC OSS apps on platforms like Heroku or Google Cloud, you may want to surface data from Salesforce. This post shows how to do… - [Field Level Security in Apex Made Easy](https://developer.salesforce.com/blogs/2020/01/learn-moar-in-spring-20-with-field-level-security-in-apex): Controlling access to data based on user permissions is critical for any application. Learn how to enforce field-level security in Apex the… ## Notes for AI agents - A Markdown version of every page is available by appending `index.md` to its URL (e.g. `https://adityanaag.com/blog//index.md`). - Structured data: each page embeds Schema.org JSON-LD (`Person` sitewide, `BlogPosting` on articles). - A full content feed is available at https://adityanaag.com/feed.xml (Atom). - This file follows the llms.txt convention (https://llmstxt.org).