JavaScript Archives - gettectonic.com
AI-Checking Agents

AI-Checking Agents

Introducing AI-Checking Agents: The Next Frontier in Software Quality Assurance The software industry has continually evolved in its pursuit of better quality assurance (QA) methods. While traditional approaches like unit testing and manual QA offer foundational tools, they often fail to meet the growing complexity of modern software. Automated testing and DevOps practices have helped, but these methods are still time-intensive, costly, and limited in scope. AI-Checking Agents. Enter AI-Checking Agents — an innovative solution leveraging generative AI to revolutionize software testing and quality assurance. These agents promise unprecedented coverage, speed, and efficiency, addressing the challenges of today’s demanding software ecosystems. Why AI-Checking Agents? Traditional QA methods fall short in delivering exhaustive coverage for the diverse behaviors and interactions of modern software. AI-Checking Agents close this gap by introducing: Synthetic Users: Revolutionizing User Experience (UX) Testing One of the most groundbreaking features of AI-Checking Agents is the ability to create synthetic users. These AI-driven personas simulate real-world user interactions, offering a novel approach to UX analysis. Key Features of Synthetic Users: UX Insights Delivered by Synthetic Users: Benefits of AI-Checking Agents in QA Integrating AI-Checking Agents with Existing QA Practices AI-Checking Agents are not a replacement for traditional methods but a powerful complement to existing practices: Transforming the Development Process AI-Checking Agents not only streamline QA but also enhance the overall development process: The Future of Quality Assurance AI-Checking Agents represent a paradigm shift in software testing, blending the best of AI-driven insights with traditional QA practices. By integrating these agents into their workflows, development teams can achieve: In a world of ever-evolving software demands, AI-Checking Agents are the key to achieving unparalleled speed, depth, and precision in quality assurance. Like Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
lightning web picker in salesforce

Lightning Record Picker in Salesforce

The lightning-record-picker component enhances the record selection process in Salesforce applications, offering a more intuitive and flexible experience for users. With its ability to handle larger datasets, customizable fields, and strong validation features, it is a powerful tool for developers to incorporate into their Salesforce applications.

Read More
Will AI Hinder Digital Transformation in Healthcare?

Poisoning Your Data

Protecting Your IP from AI Training: Poisoning Your Data As more valuable intellectual property (IP) becomes accessible online, concerns over AI vendors scraping content for training models without permission are rising. If you’re worried about AI theft and want to safeguard your assets, it’s time to consider “poisoning” your content—making it difficult or even impossible for AI systems to use it effectively. Key Principle: AI “Sees” Differently Than Humans AI processes data in ways humans don’t. While people view content based on context, AI “sees” data in raw, specific formats that can be manipulated. By subtly altering your content, you can protect it without affecting human users. Image Poisoning: Misleading AI Models For images, you can “poison” them to confuse AI models without impacting human perception. A great example of this is Nightshade, a tool designed to distort images so that they remain recognizable to humans but useless to AI models. This technique ensures your artwork or images can’t be replicated, and applying it across your visual content protects your unique style. For example, if you’re concerned about your images being stolen or reused by generative AI systems, you can embed misleading text into the image itself, which is invisible to human users but interpreted by AI as nonsensical data. This ensures that an AI model trained on your images will be unable to replicate them correctly. Text Poisoning: Adding Complexity for Crawlers Text poisoning requires more finesse, depending on the sophistication of the AI’s web crawler. Simple methods include: Invisible Text One easy method is to hide text within your page using CSS. This invisible content can be placed in sidebars, between paragraphs, or anywhere within your text: cssCopy code.content { color: black; /* Same as the background */ opacity: 0.0; /* Invisible */ display: none; /* Hidden in the DOM */ } By embedding this “poisonous” content directly in the text, AI crawlers might have difficulty distinguishing it from real content. If done correctly, AI models will ingest the irrelevant data as part of your content. JavaScript-Generated Content Another technique is to use JavaScript to dynamically alter the content, making it visible only after the page loads or based on specific conditions. This can frustrate AI crawlers that only read content after the DOM is fully loaded, as they may miss the hidden data. htmlCopy code<script> // Dynamically load content based on URL parameters or other factors </script> This method ensures that AI gets a different version of the page than human users. Honeypots for AI Crawlers Honeypots are pages designed specifically for AI crawlers, containing irrelevant or distorted data. These pages don’t affect human users but can confuse AI models by feeding them inaccurate information. For example, if your website sells cheese, you can create pages that only AI crawlers can access, full of bogus details about your cheese, thus poisoning the AI model with incorrect information. By adding these “honeypot” pages, you can mislead AI models that scrape your data, preventing them from using your IP effectively. Competitive Advantage Through Data Poisoning Data poisoning can also work to your benefit. By feeding AI models biased information about your products or services, you can shape how these models interpret your brand. For example, you could subtly insert favorable competitive comparisons into your content that only AI models can read, helping to position your products in a way that biases future AI-driven decisions. For instance, you might embed positive descriptions of your brand or products in invisible text. AI models would ingest these biases, making it more likely that they favor your brand when generating results. Using Proxies for Data Poisoning Instead of modifying your CMS, consider using a proxy server to inject poisoned data into your content dynamically. This approach allows you to identify and respond to crawlers more easily, adding a layer of protection without needing to overhaul your existing systems. A proxy can insert “poisoned” content based on the type of AI crawler requesting it, ensuring that the AI gets the distorted data without modifying your main website’s user experience. Preparing for AI in a Competitive World With the increasing use of AI for training and decision-making, businesses must think proactively about protecting their IP. In an era where AI vendors may consider all publicly available data fair game, implementing data poisoning should become a standard practice for companies concerned about protecting their content and ensuring it’s represented correctly in AI models. Businesses that take these steps will be better positioned to negotiate with AI vendors if they request data for training and will have a competitive edge if AI systems are used by consumers or businesses to make decisions about their products or services. Like Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more Top Ten Reasons Why Tectonic Loves the Cloud The Cloud is Good for Everyone – Why Tectonic loves the cloud You don’t need to worry about tracking licenses. Read more

Read More
OpenAI Introduces Canvas

OpenAI Introduces Canvas

Don’t get spooked – OpenAI introduces Canvas—a fresh interface for collaborative writing and coding with ChatGPT, designed to go beyond simple conversation. Canvas opens in a separate window, enabling you and ChatGPT to work on projects side by side, creating and refining ideas in real time. This early beta provides an entirely new way of collaborating with AI—combining conversation with the ability to edit and enhance content together. Built on GPT-4o, Canvas can be selected in the model picker during the beta phase. Starting today, we’re rolling it out to ChatGPT Plus and Team users globally, with Enterprise and Education users gaining access next week. Once out of beta, Canvas will be available to all ChatGPT Free users. Enhancing Collaboration with ChatGPT While ChatGPT’s chat interface works well for many tasks, projects requiring editing and iteration benefit from more. Canvas provides a workspace designed for such needs. Here, ChatGPT can better interpret your objectives, offering inline feedback and suggestions across entire projects—similar to a copy editor or code reviewer. You control every aspect in Canvas, from direct editing to leveraging shortcuts like adjusting text length, debugging code, or quickly refining writing. You can also revert to previous versions with Canvas’s back button. OpenAI Introduces Canvas Canvas opens automatically when ChatGPT detects an ideal scenario, or you can prompt it by typing “use Canvas” in your request to begin working collaboratively on an existing project. Writing Shortcuts Include: Coding in Canvas Canvas makes coding revisions more transparent, streamlining the iterative coding process. Track ChatGPT’s edits more clearly and take advantage of features that make debugging and revising code simpler. OpenAI Introduces Canvas to a world of new possibilities for truly developing and working with artificial intelligence. Coding Shortcuts Include: Training the Model to Collaborate GPT-4o has been optimized to act as a collaborative partner, understanding when to open a Canvas, make targeted edits, or fully rewrite content. Our team implemented core behaviors to support a seamless experience, including: These improvements are backed by over 20 internal automated evaluations and refined with synthetic data generation techniques, allowing us to enhance response quality and interaction without relying on human-generated data. Key Challenges as OpenAI Introduces Canvas A core challenge was determining when to trigger Canvas. We trained GPT-4o to recognize prompts like “Write a blog post about the history of coffee beans” while avoiding over-triggering for simple Q&A requests. For writing tasks, we reached an 83% accuracy in correct Canvas triggers, and a 94% accuracy in coding tasks compared to baseline models. Fine-tuning continues to ensure targeted edits are favored over full rewrites when needed. Finally, improving comment generation required iterative adjustments and human evaluations, with the integrated Canvas model now outperforming baseline GPT-4o in accuracy by 30% and quality by 16%. What’s Next Canvas is the first major update to ChatGPT’s visual interface since launch, with more enhancements planned to make AI more versatile and accessible. Canvas is also integrated with Salesforce. Like Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more Top Ten Reasons Why Tectonic Loves the Cloud The Cloud is Good for Everyone – Why Tectonic loves the cloud You don’t need to worry about tracking licenses. Read more

Read More
Triggering a Refresh of the Einstein Next Best Action

Triggering a Refresh of the Einstein Next Best Action

How to Force a Refresh of the Einstein Next Best Action Component User Question: “Hi folks, is there a way to force a refresh of the Einstein Next Best Action component in the service console? I tried re-executing my recommendation strategy flow, but the recommendation didn’t change, even though the flow picked a new one. I also triggered the lightning:nextBestActionsRefresh event from an Aura component, but that didn’t work either.” Triggering a Refresh of the Einstein Next Best Action (NBA) Component Einstein Next Best Action (NBA) is designed to react dynamically to changes in Salesforce, updating its recommendations. While refreshing the entire page works, there are more efficient methods to trigger a refresh in a more subtle, automatic way. Trigger 1: Automatic Refresh Based on Record Changes If a field on the record is modified, the NBA component automatically refreshes to show updated recommendations. Trigger 2: Refresh Triggered by Flow on the Same Page NBA also refreshes if a flow changes a related object. For example, if a flow modifies a related Survey record, the NBA component on the current record page will refresh. This smart refresh is facilitated by Salesforce’s Lightning cache, though it may not apply in all scenarios. Trigger 3: Community Cloud Event Integrations NBA can refresh via special event integrations in Salesforce Community Cloud pages. Trigger 4: Using a Lightning Component on the Same Page The NBA component listens for the lightning:nextBestActionsRefresh event. When triggered, it sends a new request to the NBA strategy execution endpoint. If the updated strategy returns new recommendations, the component refreshes automatically. This works on both Lightning Experience and Communities pages. To fire the event from a Lightning component, add this tag: htmlCopy code<aura:registerEvent name=”refreshEvent” type=”markup://lightning:nextBestActionsRefresh”/> Make sure the event includes the correct recordId in its payload. The component will only refresh if the event’s recordId matches the current record page. Example Code for Firing the Event: javascriptCopy codefunction(component, event, helper) { var appEvt = $A.get(“e.lightning:nextBestActionsRefresh”); if (!$A.util.isEmpty(component.get(“v.myRecordId”))) { appEvt.setParam(“recordId”, component.get(“v.myRecordId”)); } appEvt.fire(); } Trigger 5: Flow Firing the Application Event If your flow doesn’t modify related records but you still want to refresh NBA, you can trigger the nextBestActionsRefresh event from a Lightning component on a flow screen. This will prompt NBA to refresh. Trigger 6: Using Platform Events Platform events enable any event in Salesforce or an external system to trigger an NBA refresh. This is useful for real-time updates, like dynamically changing recommendations based on supply chain or ERP changes. One example involved updating recommendations based on customer sentiment detected during call recordings. By implementing these methods, you can ensure the NBA component remains responsive and up-to-date across various use cases. Like1 Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
Slack Automation with New Workflow Features

Slack Automation with New Workflow Features

Salesforce Expands Slack Automation with New Workflow Features Salesforce has introduced new capabilities in Slack, allowing customers to build workflows that automatically trigger when an event occurs in third-party apps like PagerDuty, Asana, Bitbucket, and others. This update also enhances the user experience, making it more intuitive to create workflows in Slack. Users now have access to over 50 plug-and-play templates tailored to common productivity tasks. Additionally, developers gain access to more coding languages and tools for building custom workflows, which can be easily shared with their teams. Why It Matters Key Highlights Workflow Builder, Slack’s no-code automation tool, empowers users to streamline tasks directly within Slack, reducing the burden on IT teams. Salesforce highlights the following new features: From Slack’s Perspective Slack has also made it easier to customize workflows with expanded developer tools. Developers can now build custom steps using open APIs and new developer resources, integrating these steps into Workflow Builder. These tools support additional programming languages, including JavaScript, TypeScript, Python, and Java, further enhancing the flexibility of custom workflows. According to Rob Seaman, Slack’s Chief Product Officer, “At Slack, one of our product principles is ‘don’t make me think.’ We’re applying that to automation, making it intuitive and delightful for everyone. These new features empower both developers and end users to automate any business process across their apps seamlessly in Slack.” What This Means for Businesses As companies seek ways to increase productivity without overloading IT teams, automation has become a critical solution. Tools like Slack’s no-code Workflow Builder enable users of any skill level to automate repetitive tasks, freeing up time for more strategic work. This is particularly important in an era where skilled workers, especially in data science and programming, are in short supply. The expanded capabilities in Workflow Builder make it easier to create powerful workflows that integrate with third-party systems. In addition, Salesforce has expanded Slack AI, initially launched in April as an add-on for paying customers, to support multiple languages, including Japanese and Spanish. This ongoing development strengthens Slack’s position as a central hub for workplace automation. Like Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
Slack Operating System

Slack Operating System

Slack Advances Its Work Operating System with Enhanced Automation Capabilities With 3,000 workflows created this year alone, Rivian relies on Slack’s automation features to save time and boost team productivity. Slack Operating System are making a world of difference. Salesforce has announced new innovations in Slack, making it easier for users to build automations regardless of their technical expertise. Key Updates: Why This Matters: With 71% of business leaders under pressure to increase team productivity, and 70% of IT leaders concerned that rising business demands could stifle innovation, automation is crucial. A recent survey reveals that 77% of users believe automating routine tasks would significantly boost productivity. Companies need user-friendly, no-code automation solutions that enhance productivity without overburdening IT departments. A Closer Look: Slack’s Perspective: Rob Seaman, Chief Product Officer at Slack, stated, “At Slack, one of our product principles is ‘don’t make me think.’ We’re applying that principle to the traditionally technical and time-consuming area of automation, making it an intuitive and delightful productivity driver for everyone. These new features make Slack even more powerful, giving both developers and end users the tools they need to automate any business process across their work apps.” Customer Reaction: “Automation is a core capability that increases productivity and saves time for Rivian employees when doing repetitive work. Workflow Builder allows Slack users to easily create no-code automation at any experience level. Our Slack users created approximately 3,000 workflows in 2024, with heavy adoption in Production, Operation, and Service groups,” said Anoop Narang, Head of Digital Workplace & Solutions at Rivian. Availability: The enhancements to Workflow Builder are now generally available to all customers. Other app updates you might have missed. Slack 4.40.120 August 27, 2024 Bug Fixes Slack 4.39.95 July 29, 2024 Bug Fixes Slack 4.39.93 July 18, 2024 Bug Fixes Slack 4.39.90 July 8, 2024 Bug Fixes Slack 4.39.89 June 25, 2024 Bug Fixes Like Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
GitHub Copilot Autofix

GitHub Copilot Autofix

On Wednesday, GitHub announced the general availability of Copilot Autofix, an AI-driven tool designed to identify and remediate software vulnerabilities. Originally unveiled in March and tested in public beta, Copilot Autofix integrates GitHub’s CodeQL scanning engine with GPT-4, heuristics, and Copilot APIs to generate code suggestions for developers. The tool provides prompts based on CodeQL analysis and code snippets, allowing users to accept, edit, or reject the suggestions. In a blog post, Mike Hanley, GitHub’s Chief Security Officer and Senior Vice President of Engineering, highlighted the challenges developers and security teams face in addressing existing vulnerabilities. “Code scanning tools can find vulnerabilities, but the real issue is remediation, which requires security expertise and time—both of which are in short supply,” Hanley noted. “The problem isn’t finding vulnerabilities; it’s fixing them.” According to GitHub, the private beta of Copilot Autofix showed that users could respond to a CodeQL alert and automatically remediate a vulnerability in a pull request in just 28 minutes on average, compared to 90 minutes for manual remediation. The tool was even faster for common vulnerabilities like cross-site scripting, with remediation times averaging 22 minutes compared to three hours manually, and SQL injection flaws, which were fixed in 18 minutes on average versus almost four hours manually. Hanley likened the efficiency of Copilot Autofix in fixing vulnerabilities to the speed at which GitHub Copilot, their generative AI coding assistant released in 2022, produces code for developers. However, there have been concerns that GitHub Copilot and similar AI coding assistants could replicate existing vulnerabilities in the codebases they help generate. Industry analyst Katie Norton from IDC noted that while the replication of vulnerabilities is concerning, the rapid pace at which AI coding assistants generate new software could pose a more significant security issue. Chris Wysopal, CTO and co-founder of Veracode, echoed this concern, pointing out that faster coding speeds have led to more software being produced and a larger backlog of vulnerabilities for developers to manage. Norton also emphasized that AI-powered tools like Copilot Autofix could help alleviate the burden on developers by reducing these backlogs and enabling them to fix vulnerabilities without needing to be security experts. Other vendors, including Mobb and Snyk, have also developed AI-powered autoremediation tools. Initially supporting JavaScript, TypeScript, Java, and Python during its public beta, Copilot Autofix now also supports C#, C/C++, Go, Kotlin, Swift, and Ruby. Hanley also highlighted that Copilot Autofix would benefit the open-source software community. GitHub has previously provided open-source maintainers with free access to enterprise security tools for code scanning, secret scanning, and dependency management. Starting in September, Copilot Autofix will also be made available for free to these maintainers. “As the global home of the open-source community, GitHub is uniquely positioned to help maintainers detect and remediate vulnerabilities, making open-source software safer and more reliable for everyone,” Hanley said. Copilot Autofix is now available to all GitHub customers globally. Like Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
Einstein Web Recommendations

Einstein Web Recommendations

Einstein Web Recommendations leverage Einstein’s capabilities to analyze user behavior, construct preference profiles, and deliver personalized content tailored to each website visitor. Utilize application scenarios to fine-tune recommendations according to your specific business rules. Web Recommendations are provided through two methods: a JSON response or HTML/JS. While the JSON response is the recommended delivery method due to its flexibility, HTML/JS can be used if the web team is unable to work with JSON. As the JSON method allows for greater flexibility, you are responsible for parsing and styling the recommendations within your web environment. Marketing Cloud Einstein Recommendations enable the creation of product or content recommendations for display on your website. The Einstein Recommendation Engine necessitates a minimum of three active items in your product catalog. Incorporate any catalog field into the web recommendation call, emphasizing a clear understanding of the data driving recommendations during catalog setup. A unique web recommendation call is generated for each page type, with Home, Product, Category, Cart, and Conversion pages recommended as a best practice. However, there is no restriction on the number of pages that can be configured in the UI. Page templates are utilized by Einstein Recommendations, treating a Product Page as a template for building personalized recommendations specific to a product page. Different types of page templates may have distinct scenarios and contexts. For instance, recommendations on a product page may be based on the viewed product, adding context. Conversely, homepage recommendations rely on overall user affinity, lacking specific context. Integrate the Einstein Web Recommendations code into the designated page’s code, incorporating both the JavaScript for the recommendation call and the HTML recommendation zone placeholder provided. Select and configure the content to be included in your web recommendations: Like Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
Marketing Cloud Engagement

Salesforce Distributed Marketing Content

Salesforce Distributed Marketing Content empowers you to extend dynamic content to dispersed teams, fostering safe and efficient interaction with that content. Integrate one or more Distributed Marketing Content Blocks seamlessly with standard or custom content areas to facilitate collaborative moments within branded email messages. For instance, enable users to personalize holiday cards with personal notes and images or provide context to market update messages. Leverage Distributed Marketing alongside AMPscript to enable users to craft customized SMS messages. Salesforce Distributed Marketing Content While marketing teams retain control over message structure, ensuring coherence, brand alignment, and compliance, collaborative content augments this framework, granting distributed teams flexibility within set parameters – a concept Salesforce refers to as “flexibility within a framework.” The usage of Distributed Marketing content is flexible and can adapt over time. Since each message is independently configurable, you can initiate with existing assets and introduce collaborative elements as needed. Please note that Distributed Marketing employs JavaScript ES6 for message personalization, requiring the disabling of Prevent Cross-Site Tracking in Safari and third-party cookies in Chrome. Enable Email Personalization with Distributed Marketing Content Blocks Utilize Distributed Marketing Content Blocks within Marketing Cloud to create personalized sections of content for Distributed Marketing users. Enable Custom SMS Messages Incorporate AMPscript into SMS messages to empower users to compose and dispatch custom SMS messages through Distributed Marketing. Personalization Data Extension Distributed Marketing establishes personalization data extensions in Marketing Cloud to store user-entered personalization data for email messages. A personalization data extension is automatically generated when connecting a journey to a campaign or enabling a journey for quick send. Custom SMS messages are not stored here but are accessible in the journey’s event data extension. Legacy Personalization While Legacy Personalization options like Introduction, Conclusion, and Greeting are available, their usage will be supported until End of Support is announced. Like1 Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
Salesforce JSON

Salesforce JSON

Today we are diving into JSON (JavaScript Object Notation) and exploring why it’s a crucial concept for you to understand. JSON is a data representation format widely used across the internet for APIs, configuration files, and various applications JSON Class Contains methods for serializing Apex objects into JSON format and deserializing JSON content that was serialized using the serialize method in this class. Usage Use the methods in the System.JSON class to perform round-trip JSON serialization and deserialization of Apex objects. Roundtrip Serialization and Deserialization Use the JSON class methods to perform roundtrip serialization and deserialization of your JSON content. These methods enable you to serialize objects into JSON-formatted strings and to deserialize JSON strings back into objects. What does JSON serialize do in Salesforce? JSON. serialize() accepts both Apex collections and objects, in any combination that’s convertible to legal JSON. String jsonString = JSON. What is the difference between JSON parse and JSON deserialize? The parser converts the JSON data into a data structure that can be easily processed by the programming language. On the other hand, JSON Deserialization is the process of converting JSON data into an object in a programming language. What is the difference between JSON and XML in Salesforce? JSON supports numbers, objects, strings, and Boolean arrays. XML supports all JSON data types and additional types like Boolean, dates, images, and namespaces. JSON has smaller file sizes and faster data transmission. XML tag structure is more complex to write and read and results in bulky files. Which is more secure XML or JSON? Generally speaking, JSON is more suitable for simple and small data, more readable and maintainable for web developers, faster and more efficient for web applications or APIs, supports native data types but lacks a standard schema language, and is more compatible with web technologies but less secure than XML. What is Salesforce JSON heap size limit? Salesforce enforces an Apex Heap Size Limit of 6MB for synchronous transactions and 12MB for asynchronous transactions. How to store JSON data in Salesforce object? If you need to store the actual JSON payload in Salesforce for audit purposes, Tectonic would recommend just using a Long Text Area field to store JSON content. You wouldn’t have any performance impacts when interacting with records, and if required you could add this to the layout of the child object storing this data. Like Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
Google Analytics and Salesforce Integration

Google Analytics and Salesforce Integration

Syncing Google Analytics Data to CRM Analytics To integrate Google Analytics and Salesforce Integration using the Google Analytics connector, follow these steps: Important Note: As of July 1, 2023, the main product Google Analytics has been decommissioned and replaced with the new product Google Analytics 4 (GA4). The Salesforce announcement GA4 Set to Replace Universal Analytics gives an overview on this. Creating a Connection Required Settings: Google Analytics 4 Integration To sync Google Analytics 4 data to Salesforce Data Pipelines: Connector Considerations: Google Analytics Salesforce Sales Cloud Integration User Identification Analytics provides two methods to identify users: Required Salesforce Sales Cloud Objects and Fields: Integration Steps: Testing and Viewing Imported Data: Notes: Google Data Studio and Salesforce Integration Connecting Salesforce with Google Data Studio allows for powerful visualizations that combine sales and marketing data. This integration helps in understanding which channels generate the most leads and income. Google Analytics 4 Connection Setup: Connection Details: Advanced Properties: Considerations: By following these steps, you can seamlessly integrate Google Analytics data into your CRM Analytics and Salesforce Data Pipelines, ensuring robust data analysis and informed decision-making. Decide How to Identify Your Users: Analytics offers two ways to programmatically identify your users: Client ID and User-ID. To support Data Import for Salesforce Sales Cloud, you must implement Client ID. You may optionally choose to also implement User-ID. Client ID pseudonymously identifies a browser instance and is best suited for businesses focused on lead generation and new customer acquisition. User-ID enables the analysis of groups of sessions, across devices, using a unique, persistent, and non-personally identifiable ID string representing a user. This option is best for businesses with high rates of logged-in users. How to Import CRM/ERP Data with Google Analytics 4 Using a CSV File: Transitioning to Google Analytics 4: As of March 2023, Google has automatically created GA4 properties for users unless they opt-out. Until July 1, 2023, you can continue to use and collect new data in your Universal Analytics properties. After this date, you must export your historical reports as Universal Analytics will be phased out. How Does Google Help Salesforce Marketing Cloud Users? Google Analytics provides invaluable insights into user behavior, helping Salesforce Marketing Cloud users optimize campaigns and understand customer journeys. Integration with the Google platform allows businesses to combine offline sales data with digital analytics, optimizing digital marketing strategies and improving campaign effectiveness. Additional Integration: Using datasets from Google Analytics and Google BigQuery, businesses can create interactive Tableau CRM dashboards to visualize campaign activities and performance metrics. By following these guidelines, organizations can leverage Google Analytics data effectively within their Salesforce ecosystem, enhancing decision-making and strategic planning. Content updated July 2024. Like1 Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
Custom List Views With LWC and Apex

Custom List Views With LWC and Apex

Creating a Custom List View in Salesforce Using LWC and Apex In this blog post, we’ll guide you through the process of creating a custom list view in Salesforce using Lightning Web Components (LWC) and Apex. This will enable you to fetch, display, and print Task records based on specific filters. We’ll cover the step-by-step development of the Apex controller, LWC component, and the creation of a list layout button to enhance your Salesforce interface. Prerequisites Step 1: Create a Visualforce Page Start by creating a Visualforce page that connects to the LWC, named ListviewPage. htmlCopy code<apex:page standardController=”Task” recordSetVar=”tasks” extensions=”CustomListViewInLwcCtrl”> <apex:includeLightning /> <style> #lightning { height: 100vh; } @media print { #lightning { height: auto; overflow: visible; } .print-section { height: auto; overflow: visible; } } </style> <div id=”lightning”></div> <script> console.log(‘work6’); var filterId = ‘{!filterId}’; console.log(‘Filter ID:’, filterId); $Lightning.use( “c:ExampleLWCApp”, function() { $Lightning.createComponent( “c:listviewpage”, { ‘filterId’: filterId }, “lightning” ); } ); </script> </apex:page> Step 2: Create an Aura Component htmlCopy code<aura:application extends=”ltng:outApp”> <aura:dependency resource=”listviewpage” /> </aura:application> Step 3: Create an Apex Controller Next, you’ll need an Apex controller to manage the fetching of list views and their associated records. apexCopy codepublic with sharing class CustomListViewInLwcCtrl { private String filterId; public CustomListViewInLwcCtrl(ApexPages.StandardSetController controller) { filterId = controller.getFilterId(); System.debug(‘FilterId–> ‘ + filterId); } public String getFilterId() { return filterId; } @AuraEnabled(cacheable = true) public static List<ListView> fetchTaskListView(String objectApiName) { try { return [ SELECT Id, Name, DeveloperName FROM ListView WHERE SObjectType = :objectApiName ORDER BY DeveloperName ASC ]; } catch (Exception e) { System.debug(‘Error fetching list views: ‘ + e.getMessage()); return new List<ListView>(); } } @AuraEnabled(cacheable = true) public static List<sObject> getTaskListviewRecord(String objectName, String listViewId, String limitsize, String offsize) { // Logic to fetch Task records } @AuraEnabled(cacheable = true) public static List<Map<String, String>> getTaskListviewLabel(String objectName, String listViewId) { // Logic to fetch Task record labels } } Step 4: Create a Lightning Web Component Create the LWC listviewPage that will interact with the Apex controller. HTML Template htmlCopy code<template> <div class=”slds-grid slds-wrap” style=”width: 280px;”> <div class=”slds-m-around_medium”> <lightning-combobox name=”listViewSelect” label=”Select List View” value={selectedListView} placeholder=”Select a List View” options={listViewOptions} onchange={handleListViewChange}> </lightning-combobox> </div> </div> <br> <div class=”slds-grid slds-wrap”> <div class=”slds-col slds-size_1-of-4″></div> <div class=”slds-col slds-size_3-of-4 slds-text-align_right”> <lightning-button variant=”brand” label=”Print” onclick={handlePrint}></lightning-button> </div> </div> <br> <div if:true={isLoading}> <lightning-spinner alternative-text=”Loading”></lightning-spinner> </div> <template if:false={isLoading}> <div class=”print-section”> <template if:true={records.length}> <lightning-datatable key-field=”Id” data={records} columns={columns} hide-checkbox-column></lightning-datatable> <div class=”slds-m-top_medium slds-text-align_center”> <lightning-button-group> <lightning-button class=”previous” label=”Previous” onclick={handlePrevious} disabled={disablePrevious}></lightning-button> <lightning-button class=”next” label=”Next” onclick={handleNext} disabled={disableNext}></lightning-button> </lightning-button-group> </div> </template> <template if:false={records.length}> <div class=”slds-text-align_center”> No records to display </div> </template> </div> </template> </template> JavaScript Controller javascriptCopy codeimport { LightningElement, track, wire, api } from ‘lwc’; import fetchListView from ‘@salesforce/apex/CustomListViewInLwcCtrl.fetchTaskListView’; import getTaskListviewRecord from ‘@salesforce/apex/CustomListViewInLwcCtrl.getTaskListviewRecord’; import getTaskListviewLabel from ‘@salesforce/apex/CustomListViewInLwcCtrl.getTaskListviewLabel’; const PAGE_SIZE = 100; export default class ListviewPage extends LightningElement { @api filterId; @track listViewOptions = []; @track selectedListView = ”; @track records = []; @track columns = []; @track isLoading = true; @track limitsize = PAGE_SIZE; @track offset = 0; connectedCallback() { console.log(‘Filter ID:’, this.filterId); } @wire(fetchListView, { objectApiName: ‘Task’ }) fetchListViewHandler({ data, error }) { if (data) { this.listViewOptions = data.map(listView => ({ label: listView.Name, value: listView.Id })); this.selectedListView = this.filterId || this.listViewOptions[0].value; this.fetchRecords(); } else if (error) { console.error(‘Error fetching list views:’, error); } } fetchRecords() { this.isLoading = true; getTaskListviewRecord({ objectName: ‘Task’, listViewId: this.selectedListView, limitsize: this.limitsize.toString(), offsize: this.offset.toString() }) .then(result => { console.log(`${result.length} records`, result); this.records = this.formatRecords(result); this.fetchLabels(); }) .catch(error => { console.error(‘Error fetching records:’, error); this.records = []; this.isLoading = false; }); } formatRecords(records) { return records.map((record, index) => ({ …record, Count: this.offset + index + 1, // Additional field mappings })); } fetchLabels() { getTaskListviewLabel({ objectName: ‘Task’, listViewId: this.selectedListView }) .then(labels => { this.columns = [ { label: ‘ ‘, fieldName: ‘Count’, type: ‘number’ }, …labels.map(labelInfo => ({ label: labelInfo.label, fieldName: labelInfo.fieldApiName, type: ‘text’ })) ]; this.isLoading = false; }) .catch(error => { console.error(‘Error fetching labels:’, error); this.isLoading = false; }); } handleListViewChange(event) { this.selectedListView = event.detail.value; this.offset = 0; this.fetchRecords(); } handlePrint() { if (confirm(‘Are you sure you want to print?’)) { window.print(); } } handlePrevious() { if (this.offset >= PAGE_SIZE) { this.offset -= PAGE_SIZE; this.fetchRecords(); } } handleNext() { this.offset += PAGE_SIZE; this.fetchRecords(); } get disablePrevious() { return this.offset === 0; } get disableNext() { return this.records.length < PAGE_SIZE; } } Step 5: Handle Remote Site Settings To allow your Apex class to make callouts, add your Salesforce org’s URL to the Remote Site Settings: Step 6: Create a List Layout Button To create a button that opens your custom list view Visualforce page: Conclusion This custom list view component in Salesforce allows for enhanced record handling, display, and printing, offering greater flexibility than the standard list views. By leveraging LWC and Apex, you can create a tailored experience for your users, improving their efficiency and overall satisfaction. If this was tl;dr, contact Tectonic for assistance today. Like1 Related Posts Salesforce OEM AppExchange Expanding its reach beyond CRM, Salesforce.com has launched a new service called AppExchange OEM Edition, aimed at non-CRM service providers. Read more The Salesforce Story In Marc Benioff’s own words How did salesforce.com grow from a start up in a rented apartment into the world’s Read more Salesforce Jigsaw Salesforce.com, a prominent figure in cloud computing, has finalized a deal to acquire Jigsaw, a wiki-style business contact database, for Read more Health Cloud Brings Healthcare Transformation Following swiftly after last week’s successful launch of Financial Services Cloud, Salesforce has announced the second installment in its series Read more

Read More
  • 1
  • 2
gettectonic.com