#logic app vs power automate
Explore tagged Tumblr posts
Text
Explore the Power of Google AppSheet Automation
In today's fast-paced world, businesses are constantly seeking tools that enhance productivity, streamline workflows, and minimize manual effort. One such tool that has gained significant traction is Google AppSheet, a no-code platform designed to enable users to create and automate apps tailored to their needs.
By leveraging AppSheet's automation capabilities, businesses can build solutions to optimize operations without requiring extensive coding knowledge. Let’s explore how Google AppSheet Automation empowers businesses and how it can be maximized for efficiency.
What is Google AppSheet?
Google AppSheet is a no-code development platform that allows users to create apps and automate processes using their existing data sources like Google Sheets, Excel, or databases. With a focus on simplicity and efficiency, it empowers users—whether they're IT professionals or non-technical team members—to design customized solutions that solve unique challenges.
One of AppSheet's standout features is Automation, which enables businesses to automate routine tasks, enhance data accuracy, and improve productivity. With automation, users can configure triggers, actions, and workflows that perform tasks such as sending notifications, updating records, or generating reports.
Also Read: AppSheet Automation: Two No-Code Ways to Power Up Your Apps
Benefits of Google AppSheet Automation
No Coding Required:
AppSheet Automation allows users to design workflows and processes without writing a single line of code. This makes it accessible to employees across departments, enabling faster implementation of solutions.
Streamlined Workflows:
Automation eliminates repetitive tasks, reducing the risk of human error and freeing up time for employees to focus on strategic work. For instance, automated approval workflows or inventory updates can save hours of manual effort.
Improved Collaboration:
With AppSheet, teams can create apps that enhance communication and collaboration by sharing real-time data and updates, ensuring everyone stays on the same page.
Integration with Google Workspace and Beyond:
Since AppSheet is part of Google Workspace, it seamlessly integrates with Google Sheets, Gmail, Google Drive, and more. It also connects to third-party data sources, making it versatile for businesses with diverse tech stacks.
Data-Driven Decisions:
AppSheet Automation can generate detailed reports and dashboards in real-time, empowering teams to make informed decisions based on up-to-date insights.
Key Features of Google AppSheet Automation
Bots for Task Automation:
Bots are the backbone of AppSheet Automation. These bots can be programmed to respond to specific triggers (like data changes) and execute actions, such as sending emails or updating records.
Conditional Logic:
Automations can be configured with conditional logic, ensuring workflows only execute under certain circumstances. For example, a bot can send a notification if inventory levels fall below a threshold.
Scalable Solutions:
Whether you're a small business or a large enterprise, AppSheet Automation scales with your needs, supporting apps and workflows of varying complexity.
Also Read: AppSheet vs Zenphi
Enhance AppSheet Automation with Zenphi
While Google AppSheet offers powerful automation capabilities, businesses looking for more advanced features or alternatives can benefit from Zenphi.
Zenphi and AppSheet Integration:
With Zenphi, you can enhance your AppSheet automation by adding advanced workflow capabilities. Automate complex processes, integrate with Google Workspace, and achieve greater customization.
Looking for an AppSheet Alternative?
If AppSheet doesn’t fully meet your needs, Zenphi offers a robust no-code automation platform designed specifically for Google Workspace. It enables users to create and manage end-to-end automated workflows effortlessly. Explore how Zenphi can be your best AppSheet alternative and supercharge your automation efforts.
0 notes
Text
Make.com (Integromat) vs. Zapier: Which Automation Tool Is Right for Your Business?
Make.com (formerly known as Integromat) and Zapier are automation tools designed to connect various apps and services, allowing businesses to set up automated workflows that save time and reduce manual work. With these tools, you can create workflows that sync data between apps, trigger notifications based on certain events, or manage routine tasks across multiple platforms—all without coding.
Using Make.com or Zapier, businesses can automate repetitive tasks like transferring customer data to a CRM, sending order confirmations, or keeping project management tools updated in real-time. While both tools serve the same core purpose, they differ in terms of ease of use, customization options, and integrations, making each one suitable for different types of business needs.
The following sections will explore these differences in detail to help you choose the tool that best fits your automation requirements.
Ease of Use
Zapier is known for its simplicity and is particularly beginner-friendly, making it ideal for those new to automation. Its interface is clean, and setting up workflows (or “Zaps”) is straightforward, often requiring minimal setup. Make.com, on the other hand, provides a more visual, flowchart-style interface that appeals to users who want more control. While Make.com may have a steeper learning curve, the visual representation of workflows makes it easier to understand complex automations once you get familiar with the tool.
Customization and Flexibility
Make.com shines in its flexibility. Its workflows, known as “scenarios,” offer conditional logic, complex branching, and even multi-step workflows that can handle different outcomes. Make.com allows for detailed customization, making it a preferred choice for businesses needing advanced workflows. Zapier also offers multi-step Zaps, but its branching and conditional logic options are more limited compared to Make.com. For businesses with straightforward automation needs, Zapier’s simplicity might be a better fit.
Integrations and Supported Apps
Zapier connects with 7,000+ apps, covering almost every popular tool, making it highly versatile. Make.com, while slightly smaller in its selection, still supports over 2,000+ apps and focuses on deep integration with popular tools like Airtable, Google Sheets, and CRM systems. If your automation relies on uncommon apps, Zapier might be the more reliable option.
Pricing
Zapier’s pricing starts at a higher entry point, which can be a drawback for small businesses or startups. Make.com offers a more affordable option for those needing extensive, high-complexity workflows. Additionally, Make.com provides more flexibility in data operations, giving users more control over cost.
Conclusion
In the end, choosing between Make.com and Zapier depends on your needs. Zapier is ideal for simpler, quick-to-build automations, while Make.com offers more depth and customization for those who want advanced workflows. Both are powerful; it’s about finding the right fit for your specific requirements.
If you’d like guidance on the best automation solution for your business or need help setting up your business workflows, feel free to contact us. We’re here to help streamline your processes and get you up and running efficiently!
0 notes
Text
"Salesforce AppBuilder: The Tool to Boost Your Cloud Computing Skills"
Salesforce AppBuilder Training: A Comprehensive Guide to Cloud Computing
The modern business landscape is becoming increasingly dependent on cloud computing, transforming how companies operate, store, and access their data. One of the leading platforms at the forefront of this shift is Salesforce, with its AppBuilder tool offering a versatile, user-friendly way to create apps within the Salesforce ecosystem. Whether you're an aspiring Salesforce developer or a business looking to maximize your cloud-based capabilities, Salesforce AppBuilder training is a must-have skill.
In this article, we’ll dive into what Salesforce AppBuilder is, how cloud computing powers it, and why mastering it could be your gateway to exciting career opportunities in the tech world.
How Salesforce Leverages Cloud Computing
Salesforce’s cloud infrastructure allows it to offer a multi-tenant architecture, meaning multiple customers share the same infrastructure while keeping their data separate and secure. This model allows businesses to scale easily without worrying about IT infrastructure. Additionally, Salesforce adheres to strict security and compliance measures, making cloud computing a safe option for businesses handling sensitive data.
Setting Up Salesforce AppBuilder
Setting up Salesforce AppBuilder is easy:
Prerequisites: Ensure that you have a Salesforce account with the necessary permissions.
Navigate the UI: Familiarize yourself with the user interface, including the drag-and-drop tools and component libraries.
Start building: Use objects, fields, and relationships to create your first app.
Building Apps on the Salesforce Platform
The actual process of building apps involves:
Creating custom objects and fields: Customize your app’s data structure.
Establishing relationships: Define how different data points relate to one another.
Customizing layouts: Optimize the user interface for desktop and mobile.
Hands-On Training: Key Modules
Training programs focus on:
Simple vs. complex apps: Learn how to develop both simple apps and more complex workflows.
Data integration: Use Salesforce’s data tools to integrate data across multiple platforms.
Automation: Automate repetitive tasks using flows and workflows.
Certifications for Salesforce AppBuilder
Becoming certified as a Salesforce Platform App Builder can significantly boost your career. The certification exam tests your knowledge of app development, logic, and deployment in Salesforce. Training programs typically include mock exams and study resources to help you pass.
Why Learn Salesforce AppBuilder?
Learning Salesforce AppBuilder is an essential step for anyone aiming to break into the world of cloud computing and Salesforce development. Here’s why:
Growing demand: With the rapid adoption of cloud-based solutions, the demand for Salesforce professionals is skyrocketing. Learning AppBuilder places you in a prime position for roles related to app development, Salesforce administration, and consulting.
Versatility: You don’t need a coding background to use Salesforce AppBuilder. Its drag-and-drop features make it accessible to users of all skill levels, empowering businesses to create custom apps with minimal technical overhead.
Career benefits: Salesforce certifications, particularly in AppBuilder, are highly valued. Earning these certifications can boost your job prospects, open the door to higher-paying roles, and position you as a leader in cloud-based app development.
Conclusion
Salesforce AppBuilder is a powerful tool that allows businesses to leverage cloud computing for custom app development. Whether you're new to Salesforce or an experienced professional, learning how to use AppBuilder can open up a wealth of opportunities in today's cloud-based world. With its user-friendly interface and versatility, it's a valuable skill for any tech professional to master.By getting trained and certified in Salesforce AppBuilder, you’ll be able to create applications that drive efficiency, enhance business processes, and support the ever-growing reliance on cloud technologies. So, if you're ready to jumpstart your career or grow your business's cloud capabilities, Salesforce AppBuilder training is the way to go!
#SalesforceAppBuilder#CloudComputing#SalesforceTraining#AppDevelopment#SalesforceCertification#TechSkills#CloudDevelopment#AppBuilderCertification#SalesforcePlatform#TechCareers#PaaS#SalesforceAdmin#AutomationWithSalesforce#NoCodeDevelopment#DataIntegration
0 notes
Text
Applications of Microprocessors vs Integrated Circuits
Introduction
Microprocessors and integrated circuits (ICs) are fundamental components in modern electronics, powering a vast array of devices and systems. Although they are often mentioned together, they serve different roles and have distinct applications. In this article, we'll explore the unique applications of microprocessors and integrated circuits, highlighting how each contributes to the technology landscape.
Understanding Microprocessors
A microprocessor is an integrated circuit that performs the functions of a computer's central processing unit (CPU). It executes instructions from software programs, handling arithmetic, logic, control, and input/output (I/O) operations. Microprocessors are the brains of many computing devices, making them critical for processing tasks.
Understanding Integrated Circuits
Integrated circuits (ICs) are semiconductor devices that contain multiple electronic components, such as transistors, resistors, and capacitors, all integrated into a single chip. ICs can perform a variety of functions, from simple amplifying signals to complex processing tasks, depending on their design and purpose.
Microprocessor Applications
1. Personal Computers and Laptops
Microprocessors are the heart of personal computers (PCs) and laptops, enabling them to run complex operating systems and software applications. Intel's Core and AMD's Ryzen series are prime examples of microprocessors used in PCs.
2. Servers and Data Centers
In servers and data centers, microprocessors handle massive amounts of data and perform complex computations. They power the infrastructure behind cloud services, internet services, and large-scale databases.
3. Mobile Devices
Smartphones and tablets rely on microprocessors to run mobile operating systems and apps. Processors like Apple's A-series and Qualcomm's Snapdragon series are designed for high performance and efficiency in mobile devices.
4. Embedded Systems
Microprocessors are used in embedded systems found in consumer electronics, automotive control systems, and industrial machines. These systems perform dedicated functions within larger systems, such as controlling airbag deployment in cars or managing industrial robots.
5. Gaming Consoles
Gaming consoles, such as the PlayStation and Xbox, use powerful microprocessors to deliver high-quality graphics and immersive gaming experiences. These processors handle complex game physics, rendering, and AI computations.
Integrated Circuit Applications
1. Consumer Electronics
Integrated circuits are essential in consumer electronics, including televisions, audio systems, and home appliances. They manage various functions, such as signal processing, power management, and user interfaces.
2. Industrial Automation
In industrial automation, ICs control machinery, robotics, and process automation systems. They ensure precise control and monitoring of industrial processes, enhancing efficiency and safety.
3. Automotive Systems
ICs are crucial in automotive systems for functions like engine control, infotainment systems, and advanced driver-assistance systems (ADAS). They improve vehicle performance, safety, and user experience.
4. Telecommunications
Telecommunication devices, such as smartphones, routers, and satellite communication systems, rely on ICs for signal processing, data transmission, and network management. They enable high-speed communication and connectivity.
5. Medical Devices
Medical devices, including diagnostic equipment, patient monitors, and implantable devices, use ICs for accurate measurement, data processing, and control functions. They enhance the reliability and functionality of medical technology.
6. Aerospace and Defense
ICs are used in aerospace and defense applications for navigation systems, communication equipment, and missile guidance systems. They offer high reliability and performance in critical and demanding environments.
Choosing the Right Component
When selecting between microprocessors and integrated circuits, consider the specific requirements of your application. Microprocessors are ideal for general-purpose computing and complex processing tasks, while ICs are suited for specialized functions and integrated solutions. Evaluate factors such as performance, power consumption, cost, and design complexity to make an informed decision.
Conclusion
Microprocessors and integrated circuits are indispensable in modern technology, each serving unique roles in various applications. Understanding their differences and applications can help you choose the right component for your projects, ensuring optimal performance and functionality.
0 notes
Text
Microsoft Power Apps Course | Power Apps Training
Power Apps for app makers & creators
Power Apps empowers app makers and creators with a variety of features to streamline the process of building custom business applications. Here's what Power Apps offers specifically for them
Power Apps and Power Automate Training
Rapid Application Development:
Low-code/No-code environment: Power Apps provides a visual interface with drag-and-drop functionality. This allows creators to build apps without extensive coding knowledge, saving time and resources.
Pre-built components and templates: A rich library of pre-built components and templates is available, offering a starting point for various functionalities and app designs. Creators can customize these components to fit their specific needs. - Microsoft Power Apps Course
Canvas vs. Model-driven apps: Power Apps caters to different development styles. Canvas apps offer a blank canvas for complete design freedom, while model-driven apps leverage existing data models for faster development of business process automation tools.
Data Integration and Management:
Connectors: Power Apps offers a vast collection of connectors that link your app to various data sources. This includes popular services like SharePoint, Excel, Dynamics 365, and even on-premises databases.
Microsoft Dataverse: The built-in data platform allows creators to store app-specific data securely. Dataverse integrates seamlessly with Power Apps, simplifying data management within the app.
- Power Apps Training
Formulas and Logic: Creators can add formulas and logic to their apps using Power Apps' expression builder. This enables the automation of tasks, data manipulation, and creation of conditional workflows within the app.
Collaboration and Sharing:
Power Apps Studio: This collaborative workspace allows creators to build and edit apps together. Teams can work on different parts of the app simultaneously, streamlining development.
App sharing: Once built, apps can be easily shared with other users within your organization. Permissions can be assigned to control access and data security.
Learning Resources:
Microsoft Power Apps documentation: Extensive documentation and tutorials are available, covering everything from getting started to building complex applications - Power Apps Training in Ameerpet
Power Automate integration: Power Automate, another tool within the Power Platform, can be integrated with Power Apps to automate workflows triggered by user actions within the app
By leveraging these capabilities, Power Apps empowers app creators to build custom business solutions efficiently, without needing to be hardcore programmers.
Visualpath is the Leading and Best Software Online Training Institute in Ameerpet, Hyderabad. Avail complete job-oriented Microsoft Power Platform Online Training by simply enrolling in our institute in Ameerpet, Hyderabad. You will get the best course at an affordable cost.
Attend Free Demo
Call on - +91-9989971070.
WhatsApp: https://www.whatsapp.com/catalog/919989971070
Visit: https://visualpath.in/microsoft-powerapps-training.html
#Power Apps and Power Automate Training#Microsoft Power Apps Online Training#Microsoft Power Apps Course#Power Apps Online Training#Power Apps Training#Power Apps Training Hyderabad#Power Apps Training in Ameerpet#Microsoft Power Platform Online Training in ameerpet
0 notes
Text
How to Implement Salesforce AppExchange Development
In the ever-evolving landscape of business technology, Salesforce has emerged as a powerhouse, offering a robust platform for customer relationship management (CRM) and beyond. One of the key features that sets Salesforce apart is its AppExchange, an ecosystem that allows businesses to extend the capabilities of their Salesforce instance by integrating third-party applications. If you're ready to take your Salesforce experience to the next level, here's a comprehensive guide on how to implement Salesforce AppExchange development.
Understanding the AppExchange:
1. Explore the Marketplace:
Start by Browsing: Begin your journey by exploring the Salesforce AppExchange marketplace. Identify apps that align with your business needs and objectives.
Read Reviews: Pay attention to user reviews to gauge the performance, reliability, and user-friendliness of potential apps.
2. Define Your Requirements:
Identify Business Needs: Clearly define the specific functionalities or solutions your business requires. This will guide your search for the right applications on the AppExchange.
Getting Started with Development:
3. Leverage Salesforce DX:
Set Up Salesforce DX: Salesforce Developer Experience (DX) is a set of tools that streamlines the development process. Familiarize yourself with Salesforce DX and set up your development environment.
4. Choose a Development Path:
Native vs. Custom Development: Decide whether to build a native Salesforce app or opt for custom development using languages like Apex and Lightning components. Consider factors such as complexity, scalability, and maintenance.
5. Design a User-Centric Interface:
Prioritize User Experience: A well-designed user interface is crucial for user adoption. Ensure your app provides a seamless experience within the Salesforce environment.
Development Best Practices:
6. Embrace Apex Coding:
Master Apex Programming: Apex is Salesforce's proprietary programming language. Learn to leverage Apex for building robust business logic within your applications.
7. Harness the Power of Lightning Components:
Create Lightning Components: Utilize Lightning components to build modern, responsive, and dynamic user interfaces. Lightning components enhance the overall user experience.
8. Test Rigorously:
Implement Test Classes: Develop comprehensive test classes to ensure the reliability and functionality of your app. Automated testing tools can expedite the testing process.
Security and Compliance:
9. Prioritize Security Measures:
Follow Salesforce Security Guidelines: Adhere to Salesforce's security best practices to safeguard sensitive data. Implement features like two-factor authentication and encryption.
10. Ensure Compliance:
Understand Compliance Standards: Familiarize yourself with industry-specific compliance standards relevant to your business. Ensure your app aligns with these standards.
Deployment and Maintenance:
11. Plan Deployment Strategically:
Implement a Deployment Plan: Develop a deployment plan to minimize disruptions during the rollout of your Salesforce app. Consider deploying updates during non-business hours.
12. Monitor and Iterate:
Continuous Improvement: After deployment, actively monitor user feedback and app performance. Iterate on your app based on feedback and evolving business needs.
Conclusion:
Implementing Salesforce AppExchange development is a journey that requires a combination of strategic planning, technical expertise, and a commitment to user satisfaction. By following these steps and embracing best practices, you'll unlock the full potential of the Salesforce platform, elevating your business processes and providing a tailored experience for your users. The AppExchange is your gateway to a world of possibilities—seize the opportunity and propel your business forward.
#Salesforce Development#Salesforce App Development#Implement Salesforce AppExchange Development#Salesforce AppExchange Development#Salesforce Admin Configuration#AppExchange Analytics
0 notes
Text
Floatchat: Streamlining Real Estate Operations with AI Chatbots
Introduction
The real estate chatbot exmaple sector is increasingly adopting new technologies like artificial intelligence to modernise client services and boost productivity. One innovation that holds great promise is AI-powered chatbots. These virtual assistants can communicate with prospects and clients via text or voice conversations. When thoughtfully implemented, real estate chatbots provide numerous operational efficiencies.
This article will explore how brokers and agents can utilise chatbot technology to optimise core business functions. We’ll overview the capabilities and templates needed to automate interactions for lead generation, FAQs, scheduling assistance, personalization and handovers. Additionally, real-world examples will showcase how chatbots are transforming the customer experience for major real estate brands.
Chatbots Create a 24/7 Real Estate Concierge
For most real estate chatbot example professionals, time is their most precious commodity. Hours spent on administrative tasks like answering common questions is time not invested into higher value activities. This is where chatbots can make a major impact.
AI chatbots act as a 24/7 concierge for real estate websites and mobile apps. They instantly engage with all visitors and provide assistance whenever needed. Instead of an agent constantly monitoring a website, the chatbot handles incoming inquiries around the clock.
According to recent surveys, over 80% of people prefer interacting with an intelligent chatbot for quick convenience versus waiting on hold for customer service. Chatbots meet these consumer expectations for instant gratification.
Additionally, chatbots serve as a qualification tool to gather lead information and gauge buyer/seller intent. They can ask questions, provide listings/data, and route promising leads to agents for follow up. This automates the initial prospect engagement process.
Lead Generation Templates
To effectively qualify real estate chatbot example leads, chatbots need specific lead generation templates and logic flows. Here are some of the key components to include:
Friendly Opening - When a new website visitor arrives, the chatbot should deliver a warm greeting to open the conversation. Simple messages like “Hi there! I’m the website assistant. How may I help you today?” make a welcoming first impression.
Qualifying Questions - After a friendly introduction, the chatbot can ask questions to understand each visitor’s interests and needs:
Are you looking to buy or sell a home?
What areas are you interested in?
What price range are you targeting?
How many bedrooms and bathrooms?
What amenities are you looking for?
When are you hoping to buy/sell?
Contact Information Requests - To further qualify leads, the real estate chatbot example needs to capture contact details like name, phone number and email address. These can be requested upfront or after a few screening questions to build some rapport first.
Follow Up Questions - Based on the initial responses, the chatbot can ask tailored follow-up questions to gather more intel:
Downsizing for retirement vs. growing family needs?
First time home buyer or experienced investor?
Imminent plans or initial research phase?
Listing Recommendations - For hot leads looking to buy ASAP, the chatbot can pull in listing recommendations that may match their criteria and preferences.
Lead Scoring - Using the questioning logic flows above, the chatbot automatically scores leads based on their buying/selling motivations. High-potential leads get routed to agents fastest.
CRM Integration - All lead data, conversation logs and connections should sync to agents’
CRM platform. This keeps every team member updated.
Thoughtful lead generation templates like these enable chatbots to immediately engage and qualify all prospects that arrive onsite 24/7.
To address these common inquiries, the chatbot needs a robust knowledge base of FAQ answers curated by subject matter experts on the real estate team. Well-crafted responses provide better assistance than just a quick one-word answer.
Additionally, the chatbot should use natural language processing (NLP) to understand the intent behind questions asked in conversational language. This allows it to match FAQs to inquiries even if the exact keywords aren’t used.
For any questions the chatbot cannot confidently address, it should transfer the user to an agent for specialized support.
With an extensive FAQ system powered by AI/NLP, real estate teams can satisfy customers 24/7 and cut down on repetitive questions handled by agents.
Scheduling Assistance for Added Convenience
Scheduling showings is another time-consuming aspect of real estate sales. Savvy real estate brands are increasingly turning to AI-powered scheduling solutions to ease the process.
Intelligent chatbots can facilitate convenient self-service booking of showings. Key capabilities include:
24/7 availability - Home buyers can request showings at any hour that works for them rather than being limited to business hours.
Conversational input - Using natural language processing, the chatbot understands scheduling details like date, time and listing address from the buyer’s sentence-based descriptions.
Confirmations - It confirms the details and provides a reminder of the upcoming appointment.
Calendar integration - The chatbot auto syncs the showing to the agent’s calendar and checks for availability before booking.
Notifications - Agents receive calendar invites and text notifications to confirm the showing details.
Rescheduling - If needed, the buyer can easily reschedule with the chatbot based on agent availability.
Offering self-service scheduling drives higher satisfaction by giving home buyers more flexibility. It also maximizes agents’ time by eliminating manual back-and-forth communication.
Humanized Chatbot Interactions
Beyond the functional capabilities, today’s chatbots also incorporate AI advancements like machine learning and natural language processing to make conversations more natural. The goal is to mimic human interactions with personalised experiences.
Here are some examples of humanised chatbot features:
Personalised Greetings - After an initial contact, the chatbot greets returning users by name for a more familiar interaction.
Context Retention - The chatbot remembers past conversations and follows up on previous interactions when users return.
Natural Speech Patterns - Users can speak conversationally using their own words instead of rigid keyword-based inputs.
Humor and Personality - Some lighthearted jokes and emoji reactions make the chatbot engaging and approachable.
Location/Details Recognition - Based on a user’s IP address or details shared, the chatbot can reference local insights like upcoming neighborhood events.
ML Improvements - Machine learning algorithms constantly refine the NLP model to better comprehend user questions and intents.
These human-like touches drive more positive sentiment during chatbot engagements. Research shows chatbots with personality convert up to 50% more leads.
Seamless Handoff to Human Agents
While AI chatbots can manage many common interactions, situations will still arise when direct communication with a real estate agent is needed. That's why providing seamless handoff is crucial.
Some best practices to enable smooth handoffs include:
Letting users explicitly request to speak with an agent at any time
Using NLP and sentiment analysis to detect frustrated users who need agent assistance
Analysing chat logs to identify areas of confusion that regularly trigger agent handoffs
Allowing agents to view chat transcripts in CRM and directly take over conversations
Setting notifications to alert agents when new promising leads arrive from the chatbot
With thoughtful handoff policies, chatbots and agents can work together to deliver personalised, omnichannel support during high-value interactions like negotiations.
Top Brand Examples and Results
Now that we’ve explored core chatbot capabilities for real estate, let’s look at some top brands seeing stellar results:
Remax - Global real estate franchisor REMAX implemented AI chatbots on their website to boost lead generation and conversions. Within 5 months their chatbot had over 400,000 conversations and generated 18,000+ hot leads for agents to contact.
Keller Williams - This brokerage franchisor partnered with conversational AI platform Chatted to develop AI virtual assistants for their agents’ individual websites. The natural language chatbots provide 24x7 assistance to prospects.
Redfin - Real estate brokerage Redfin uses chatbots to allow home buyers and sellers to easily schedule property tours, unlock listings after-hours, and get questions answered on demand. Their bots have over 97% accuracy in understanding user requests.
Compass - To tap into automated lead generation, Compass created a text messaging bot that prospects can text for immediate assistance. It asks qualifying questions and books showings 24/7.
The results from major brands highlight the innovation and value that AI chatbots can bring to the real estate sector.
Key Takeaways
Here are the critical insights to remember when creating an AI chatbot for real estate:
Implement smart lead generation templates to engage and qualify all prospects that visit your site or app. This provides 24/7 lead capturing.
Equip the chatbot with comprehensive FAQ answers so it can instantly address visitors’ common questions without agent assistance.
Offer convenient self-service scheduling of property showings and other appointments.
Incorporate natural language processing and machine learning to make conversations smooth and personalised.
Allow seamless handoff to human agents when additional support is needed.
Continuously refine the chatbot based on performance analytics to optimise results.
With an intelligent, thoughtful chatbot implementation, real estate professionals can provide five-star service and maximise results. Conversational AI paves the path to the next evolution of customer experience.
0 notes
Text
In the present speedy computerized world, organizations are progressively depending on mechanization to smooth out processes and further develop productivity. Two well known computerization apparatuses that assist with accomplishing this are logic app vs power automate. Both are Microsoft items intended to automate work processes and coordinate administrations, however they take special care of marginally various necessities. In this article, we'll investigate the distinctions, similitudes, and when to utilize each device, zeroing in on the central issues of Logic App vs Power Automate
0 notes
Photo
TC39 needs your help with the future of time in JavaScript
#496 — July 10, 2020
Unsubscribe | Read on the Web
JavaScript Weekly
Temporal, a Future API for Dates and Times in JavaScript — TC39 seeks your help with the future of JavaScript! They’re working on a proposal for a modern date/time API for ECMAScript/JS. Check out these examples for a feel of what the API would give us. You’re encouraged to have a play and fill out this survey.
The Temporal Champions Group on TC39
Perf Track: Tracking the Performance of Sites Using Popular JS Frameworks — Aiming to ‘track framework performance at scale’, Perf Track lets you get answers to questions like how many Vue apps use compression (and what type), how big React apps tend to be, or how many Ember apps have a good first contentful paint time.
Google Chrome Labs
How to Communicate on a Remote Team: Tools and Templates — Learn how to overcome the two biggest challenges of remote communication: understanding tone and upholding a collaboration framework.
CircleCI sponsor
Creating Tiny Desktop Apps with Tauri and Vue.js — Tauri is a toolkit (built in Rust) for building cross platform, JavaScript and CSS powered desktop apps, and the eventual app size can be pretty small (under a megabyte).
Kelvin Omereshone
Malina.js: A Front-End Compiler Inspired by Svelte — A tool similar to Svelte that pre-compiles an app (think a compile-time framework, rather than a runtime one) for better performance. See examples on the REPL. One developer created the same app with Svelte and Malina and has things to say, too.
Oleg Nechaev
⚡️ Quick bytes:
ESLint 7.4.0 has been released.
Impressive to see a typewriting / typing effect done entirely without JavaScript.
There's a new release of VS Code out with a new JavaScript debugger.
💻 Jobs
Find a Job Through Vettery — Use Vettery to connect with growing tech teams at startups and Fortune 500 companies.
Vettery
JavaScript Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team
📚 Tutorials, Opinions and Stories
A Case Study of Moving a Three.js WebXR App Off the Main Thread — You can’t argue about Surma’s dedication to Web Workers and here we get a practical demonstration of how they can help to improve performance.
Surma
Moving from TypeScript to Rust and WebAssembly — There’s not a lot to this quick writeup, but it’s interesting that this sort of move is now at least possible and it may well suit your use case too.
Nicolo Davis
Four Ways to Fetch Data in React — It’s really three ways you perhaps don’t want to fetch data, building towards a solid case for the best approach. But we like the logical progression through the alternatives.
Cory House
Breakpoints and console.log Is the Past, Time Travel Is the Future — 15x faster JavaScript debugging than with breakpoints and console.log.
Wallaby.js sponsor
Debounce Explained: How to Make Your Code Wait For Your User To Finish Typing — Debounce functions are higher-order functions that limit the rate at which another function can be run.
Juan Vega
Flattening Arrays with Array.flat() — Knowing about flat() is useful enough, but did you know you can flatten an array of any depth with .flat(Infinity)?
Samantha Ming
Barebones WebGL in 75 Lines of Code — WebGL is pretty intimidating but this boils it down to the bare essentials. And if you want to go further, I still think this thorough guide is one of the best. Of course, you may see all of the boilerplate needed and just use Three.js instead, which is fine too! 😄
Avik Das
Automated Code Reviews for JavaScript, Directly from Your Git Workflow
Codacy sponsor
▶ Learn Next.js: A Video Course — A free video course on how to build both Jamstack and SSR sites using React and Next.js. No signing up needed either.
Lee Robinson
Khan Academy's Transition to React Native — The tale of the multi-year project to move both the iOS and Android apps of the popular education platform over to using React Native.
Khan Academy
🔧 Code & Tools
shareon: Simple and Stylish 'Share Buttons' — They also boast good ethics as there’s no tracking code involved.
Nikita Karamov
Financial: A Zero-Dependency Financial Calculations Library — Based on numpy-financial but aimed at Node, Deno, and browser alike, Financial gives you functions for calculating things like future values, repayments, interest rates, etc.
Luciano Mammino
Serverless Headless CMS - OpenSource, Powered by React and Node — Scale up and down in milliseconds with your demand. Stop paying for servers and resources you are not using.
Webiny sponsor
useWebAnimations: React Hook for Flexible Web Animations API Animations — While still badged an ‘experimental technology’ by MDN, the Web Animinations API provides an approach for describing animations on DOM elements.
Welly Shen
Puppeteer 5.0 Released: The Headless Chrome Control Library — Puppeteer 4.0 was only three weeks ago but there are breaking changes here and work on making Puppeteer environment agnostic is in full flow.
Puppeteer
N3.js: Fast, Spec-Compatible, Streaming RDF Library — If you need/use RDF you’ll know, but basically it’s a format for modeling and specifying Web resources and this library works in Node and browser alike.
RDF JavaScript Libraries
🎨 Creative Corner
jsplot: A Quick Way to Plot the Results of a Function — It’s really quick and minimal but this basic Web tool does a quick plot from the results of the JavaScript you supply.
Fredrik Norén
▶ The Easiest Flappy Bird Tutorial Ever? — A 13-minute YouTube video on how to create your own Flappy Bird clone using straight up HTML, JS, and CSS. No framework, no build tools, the code isn’t perfect, but that’s not the point :-)
Shawn Beaton
by via JavaScript Weekly https://ift.tt/3iSXSHS
0 notes
Link
Hello guys, learning a new technology is not easy and Python is no exception. Even though people may say that Python is simple and easy to learn you still need to work hard to learn Python, at least to become a professional Python developer.
One way to accelerate your learning is building projects, which not only give you a perspective to learn a programming language but also teach how you use its feature for a practical purpose.
If you are learning Python and want to build real-world projects to become a Python master or already know python but looking for some project ideas to take your Python skill to next level then you have come to the right place.
In this article, I am going to share some of the project-based free courses which you can use to not only build projects using Python but also learn Python better. These are also completely free courses from sites like Udemy and Coursera and made free by their instructor for educational and marketing purposes.
Though, you should check the price before you join because some instructor converts their free course to best one after they reach their marketing goals.
Coming back to Python, it's probably the best thing you know to learn now. Python is a versatile language with broad usage. You can use Python for web development, automation, Machine Learning, and Data Science. You can also use Python to get a freelance job or get a job in big tech companies like Google. There are very few languages where both of these possibilities.
I have been saying that every programmer should learn Python and this post is the next in that series. In the past, I have shared 15 free Python courses and 5 Best Python courses to help my reader get the best resources to learn Python.
This is very important becuase the internet is full of resources, both free and paid and if you are not careful you will spend all your time by doing a resource hoping that's where a curated list of courses helps.
If you are new to Python and can spend a few bucks, I highly recommend The Complete Python Bootcamp course by [Jose Marcial Portilla]on Udemy, one of the best online Python courses. It's not free but you can get it on just $10 on Udemy sales. It also includes a final project you will build as part of the course.
Remember, nothing helps you more than actually building stuff so go ahead, sharpen your mind and learn Python.
image_credit --- Grokking the System Design Interview
9 Projects you can do to become a Python Developer in 2020
Without wasting any more of your time, here are the 5 projects any beginner learning Python can build and learn Python at the same time.
1. Build a Virtual Assistant
In this project, you will build your own virtual assistant using the Python Programming Language! A virtual assistant is an application that can understand voice commands and complete tasks for a user. Google's assistant and Amazon's Alexa are good examples of virtual assistants.
If you need any help with the project, you can check out the Learn Python: Build a Virtual Assistant, a free Python course from Udemy. It's a project-based course, which is great to learn and build something. As part of this course, you will go from basic python to creating a virtual assistant for your computer
Here is the link to join the course for FREE: Learn Python: Build a Virtual Assistant
2. Build a Reconnaissance Scanner
In this project you will build a Reconnaissance Scanner that will scan any website that is available over the internet and will provide you with results in a file.
If you need help then you can check out Python Programming --- Build a Reconnaissance Scanner, another free, project-based course to learn Python in 2020. In this course, you will learn how to use Python 2.x and Python 3.x in Ubuntu and
Here is the link to join the course for FREE: Python Programming --- Build a Reconnaissance Scanner
3. Build a Rock Paper Scissors Game Clone
Creating games is probably the best way to learn coding, logic, and any new programming language like Python. It also gives you a feeling of creating something useful.
This is another free, project-based course to learn Python online from your home or office which provides A deep guide into creating a Rock Paper Scissor program in Python.
Here is the link to join the course for FREE: Rock Paper Scissors --- Python Tutorial
4. Create a URL Shortening Service like bit.ly
If you want to do web development, creating websites and web applications then Python is a great choice. It has a lot of great frameworks like Python and Flask which makes it easy to create web applications.
This free Python course will teach you Django, one of the most powerful web frameworks that makes it easy to build web applications it's why it's the #1 Python library
Here is the link to join the course for FREE: Try Django 1.10 | Create a URL Shortening Service
image_credit --- Grokking the System Design Interview
5. A Cryptocurrency Portfolio App
You can build a project to track all of your crypto assets with ease. See the total value of all your crypto assets combined along with detailed information about each one. Positive and negative values are color coated green and red.
If you need help, check Python & Cryptocurrency: Build 5 Real World Applications, a free Python course on Udemy.
6. A Real-Time Price Alert App
In this project, you need to build a Real-time price alert app that will notify you when cryptocurrencies hit certain prices in USD. You can keep this program running in the background. Your computer will shout things like, 'Bitcoin hit $12000!'.
If you need help, check Python & Cryptocurrency: Build 5 Real World Applications, a free Python course on Udemy.
7. Top 100 Cryptocurrency Ranking App
In this mini-project, you need to build a ranking app for Cryptocurrencies like BitCoin, Etherium, Litecoin, Libra, etc where you can sort by rank, daily percentage change, or daily volume. Positive and negative values are color coated green and red, something like CoinMarketCap.com
If you need help, check Python & Cryptocurrency: Build 5 Real World Applications, a free Python course on Udemy.
8. Predict The Future Values of the Top 100 Cryptocurrencies
This is another mini-project to explore what the price of cryptocurrencies will be if the global market cap hits certain levels (such as world stock market levels)
The last course, I am going to share with you is a free course for Python developers which will help you with these projects. If you stuck you can join this course to follow along.
Here is the link to join this course for free --- Python & Cryptocurrency: Build 5 Real World Applications
That's all about some of the best Projects you can do to learn Python in 2020. These are great projects, neither trivial nor super-complicated which makes them ideal for a beginner learning Python. I have also shared accompanied free Python courses which can help you if you got stuck.
If you need more projects, you can also check out The Python Mega Course: Build 10 Real World Applications course on Udemy, which provides step by step guide on building 10 real-world projects like
Create a web-mapping app on the browser
Create a desktop app for storing data for books
Create a web scraper
Create a database app
Create a website blocker
Create an app that translates English words
Create a portfolio website and publish it on a real server
Create a webcam video app that detects moving objects
Create a data visualization app
Create a geocoding web app
Use Python to schedule programs based on computer events.
More Resources
And, If you are serious about learning Python in-depth, here are some more free and paid resources for Further Learning
10 Reasons to learn Python in 2020
Top 5 Course to Learn Python for Beginners
Top 5 Web Development Frameworks for Python Developers
Python vs. JavaScript --- Which is better to start with?
10 Free Online course to learn Python in depth
Top 8 Python libraries for Data Science and Machine Learning
Python vs. Java --- Which Programming language Beginners should learn?
5 Data Science and Machine Learning course in Python
10 Python Courses and Certifications For Programmers
Top 5 Python books to learn Data Science
10 Free Python Programming Books for Programmers
Thanks for reading this article so far. If you like these Python books, then please share this article with your friends and colleagues. If you have any questions or feedback, then please drop a note, and if you have a Python book which I should read, feel free to share it with us.
0 notes
Text
PS4 Central Processing Unit (CPU) | The Information Guide
The PS4 processor (aka PS4 CPU) is the main hardware part of the whole PS4 system. It is the unit which performs most of the processing inside the PS4. In other words, the CPU is the brain of the PS4 where most calculations take place. In terms of computing power, the CPU is the most important element of the PS4 game console. It receives data input, executes instructions, and processes information. It communicates with input/output (I/O) devices, which send and receive data to and from the PS4 CPU. Additionally, the PS4 CPU has an internal bus for communication with the internal cache memory, called the backside bus. The main bus for data transfer to and from the PS4 CPU, memory, chipset, and AGP socket is called the front-side bus.
To control instructions and data flow to and from other parts of the PS4, the CPU relies heavily on a chipset, which is a group of microchips located on the PS4 motherboard.
The PS4 CPU contains internal memory units, which are called registers. These registers contain data, instructions, counters and addresses used in the ALU’s information processing.
Components of PS4 CPU
The PS4 CPU has two components:
Control Unit: extracts instructions from memory and decodes and executes them
Arithmetic Logic Unit (ALU): handles arithmetic and logical operations
To function properly, the PS4 CPU relies on the system clock, memory, secondary storage, and data and address buses.
The Four Primary Functions of the PS4 CPU
The PS4 CPU processes instructions it receives in the process of decoding data. In processing this data, the PS4 CPU performs four basic steps:
Fetch: Each instruction is stored in memory and has its own address. The PS4 processor takes this address number from the program counter, which is responsible for tracking which instructions the PS4 CPU should execute next.
Decode: All programs to be executed are translated to into Assembly instructions. Assembly code must be decoded into binary instructions, which are understandable to the PS4 CPU. This step is called decoding.
Execute: While executing instructions the CPU can do one of three things: Do calculations with its ALU, move data from one memory location to another, or jump to a different address.
Store: The PS4 CPU must give feedback after executing an instruction, and the output data is written to the memory.
But how can PS4 CPU manage all data together without any flaw? The number of operations the PS4 CPU can perform depends upon its speed, which is measured in Hertz. One hertz is the speed during which the CPU performs one operation in one second. Typically, you can measure a PS4’s speed in gigahertz. 1 GHz is the speed it takes the PS4 CPU to perform one million simple tasks. Get it as a necessity to handle all these data without a single failure. A “simple task” includes the smallest steps a processor can perform.
What the PS4 CPU Looks Like and Where’s Its Location
The PS4 CPU is small and square, with many short, rounded, metallic connectors on its underside.
The processor attaches directly to a CPU “socket” (or sometimes a “slot”) on the PS4 motherboard. The PS4 CPU is inserted into the socket pin-side-down, and a small lever helps to secure the processor.
After running even a short while, PS4 processor can get very hot. To help dissipate this heat, it’s almost always necessary to attach a heatsink and a fan directly on top of the PS4 CPU. That’s why you see the PS4 processor mounted with a cooler.
PS4 CPU Type
PS4 uses an AMD Jaguar CPU with 8 cores at the speed of 1.6GHz. While some of AMD’s charts are a little misleading out of context, this one is fairly straightforward. AMD claims that its low-power Temash system-on-chip simultaneously manages to have double the performance in 3DMark11. Now, with the release of new PS4 Pro CPU, you can imagine how faster it is. It’s a graphical benchmark, and a sizable bump in PCMark7, an all-purpose benchmark. It comes with only half the power at its disposal. At just 3.9 watts, there should be little trouble putting a dual-core 1GHz A4-1200 into a completely fanless tablet. Therefore, you can probably expect eight-watt, quad-core A6-1450 (which can boost to 1.4GHz) to fit in very thin laptops indeed.
AMD Jaguar 8-Core Processor
To get at why and Sony chose AMD CPU for PS4, you need to start with the content needs. Sony was looking for a way to increase the console “footprint”, increase the amount of apps, and lower the cost of software development. For this reason, PS4 CPU is a very good processor for the job it handles. The company designed PS4 to do a lot more than games. They designed the Ps4 console to be the future hub for all home entertainment and home automation and control. To effectively do this, they will need hundreds of complex apps that are relatively straight-forward to code. You can guess it. the PS4 processor can do the work as it should be. Therefore, you need to start with an application processor architecture that supports this, and it’s not Power architecture.
Digital Foundry finds that the scenes that only tap the PS4 Pro’s 2.1GHz Jaguar CPU only provide a minimal bump in FPS, with one scene hitting just a 6FPS bump, which actually directly corresponds to the 31% boost in the CPU’s overclock. The publication hints that if the PS4 Pro had a more optimized and powerful CPU, these specific scenes would have better frame rates.
AMD Jaguar processor used in PS4 makes the gaming more seamless and smooth. 64-bit was important as it maximized memory addressability, and the next gen console needed to run multiple apps, operating systems and hypervisors. ARM-based architectures will soon get as powerful as AMD’s Jaguar cores, but not when Sony needed them for its new console.
32-bit vs. 64-bit processors
PS4 CPU is a 64-bit processor that conforms to the modern standards of gaming consoles. Most of the newer game consoles have 64-bit compatible processor units. PS4 CPU is just one of these good consoles that adopted 64-bit technologies. The move to the newer 64-bit technology emerges from the need to allow computers to support larger RAM memory chips. The 32-bit architecture would only allow the use of a 4GB RAM. Even if you install a larger RAM in the PS4, it will only be able to use 4GB and the rest will go away wasted.
Users with the PS4 Pro usage, who want to simply browse the internet, write documents or send and receive e-mails can still select a 32-bit chipset. However users who heavily use their PS4 for multitask-heavy applications such as games and video editing will need to purchase a 64-bit chipset to optimize their computer performance.
PS4 CPU Cores
A CPU core is a CPU’s processor. In the old days, every processor had just one core that could focus on one task at a time. Today, CPUs have been two and 18 cores, each of which can work on a different task.
PS4 CPU permitting, some applications can use what we call multithreading. When the PS4 CPU runs hot, you may consider changing its fan. If a thread is understood as a single piece of a computer process, then using multiple threads in a single CPU core means more instructions can be understood and processed at once. The 8 cores of PS4 processor may get really hot if loads of data rush at once at it. Some software can take advantage of this feature on more than one CPU core, which means that even more instructions can be processed simultaneously.
A core can work on one task, while another core works a different task. So, the more cores a CPU has, the more efficient it is. In fact, PS4 CPU with its 8 cores will not make you need additional power, in most cases. Many processors, especially those in laptops, have two cores, but some mobile processors, such as Intel’s 8th generation processors, have four. You should shoot for at least four cores in your machine if you can afford it. Even with PS4 Pro CPU, you shouldn’t worry about the speed it offers.
Clock Speed
The clock speed of PS4 CPU is 1.6 MHz, while it is 2.1 MHz in PS4 Pro. The clock speed for the PS4 CPU used to be enough when comparing performance. Things aren’t so simple anymore. A CPU that offers multiple cores or hyper-threading may perform significantly better than a single-core CPU of the same speed that doesn’t feature hyper-threading.
Since PS4 comes with multiple CPUs, it can have an even bigger advantage. What you may not know about the clock speed of PS4 CPU is that developers code their games to comply with this limit. Manufacturers design all of these features to allow high-end game consoles to more easily run multiple processes at the same time, increasing your performance when multitasking or under the demands of powerful apps like video encoders and modern games. That’s why when dealing with PS4 CPU clock speed, you have to free your mind in this regard. So, let’s take a look at each of these features and what they might mean to you.
Hyper-Threading
When talking about PS4 CPU, this topic is not what we want to discuss. Actually, some Intel microprocessors use Hyper-Threading is a technology that allows a single microprocessor to act like two separate processors to the operating system and the application programs that use it. It is a feature of Intel’s IA-32 processor architecture. So, don’t concern too much when it comes to this point.
The fact that PS4 CPU doesn’t support hyper-threading is not surprising at all. With Hyper-Threading, a microprocessor’s “core” processor can execute two (rather than one) concurrent streams (or threads) of instructions sent by the operating system. Having two streams of execution units to work on allows more work to be done by the processor during each clock cycle. Using the right PS4 CPU can add more power to the gaming experience. To the operating system, the Hyper-Threading microprocessor appears to be two separate processors. Because most of today’s operating systems (such as Windows and Linux) are capable of dividing their work load among multiple processors (aka symmetric multiprocessing or SMP ). When considering the processor of PS4 Pro, the things don’t differ here. The operating system simply acts as though the Hyper-Threading processor is a pool of two processors.
Conclusion
There is a lot of gossip on PS4 CPU and how powerful it is to handle all the data it must process. This is something that shouldn’t concern real players that know the capabilities of their PS4 game console. In fact, PS4 CPU is a part of PS4 architecture that you can’t change/remove. There’s no replacement for it and you have to accept it as it is. So, don’t panic when PS4 CPU doesn’t perform the way you want, because all PS4s do the same. Unless you plan to optimize PS4 speed by doing some tweaks, that’s something else. Just make sure the PS4 CPU is the one that needs your real care.
The post PS4 Central Processing Unit (CPU) | The Information Guide appeared first on RyLi Gaming Solutions.
0 notes
Link
Content last updated December 2020. Roadmap corresponds to Summer ’21 projections. Our forward-looking statement applies to roadmap projections. Guide Overview Looking to build forms on the Salesforce Platform? You’ve got multiple options, spanning the entire low-code to pro-code continuum. Representing low-code, Dynamic Forms in Lightning App Builder and Screen Flows in Flow Builder. Hanging out in the middle of the continuum is the ability to extend Screen Flows with LWCs. And representing pro-code is the LWC framework and its ever-growing library of base components. Options are great, but how do you determine which one (or which combination) is the right option? That’s where this doc comes in. Takeaway #1: For basic create/edit forms on a Lightning record page on desktop, use Dynamic Forms. Takeaway #2: Use Flow to build multi-screen forms. If you need to also meet precise UX requirements, layer in LWCs. Takeaway #3: If you need test automation, start with LWC. You can write unit tests for any LWC, regardless of where you plan to embed it. This doc focuses on form-building. You’ll see a similar assessment in Architect’s Guide to Building Record-Triggered Automation on Salesforce. A bit later, we’ll go into depth on these use cases and more, including how to choose between click-based tools and code-based tools (and when to combine them), but here are the major considerations to start with when choosing between these three options. Low Code Pro Code Dynamic Forms1 Screen Flow Screen Flow + LWC LWC Custom Object on Desktop Available Available Available Available Any Object on Desktop Roadmap Available Available Available Dynamic Visibility Available Available Available Available Multi-Screen Form Not Available Available Available Not Ideal Cross-Object Not Available Available Available Available Logic or Actions Behind the Form Not Available Available Available Available Dynamic Event Handling Roadmap Not Available Available Available Pixel-Perfect Styling Not Available Not Available Available Available Unit Testing Not Available Not Available Available Available 1Dynamic Forms is a feature of Lightning Pages. Lightning Pages are declaratively configured with the Lightning App Builder. As part of Summer ‘20, Dynamic Forms is a non-GA preview feature, and we aim to GA it in Winter ‘21. Available: works fine with basic considerations. Not Ideal: possible but consider an alternative tool Roadmap: estimated to support by Summer ’21 (targeted go-live mid-June 2021). Our forward-looking statement applies to roadmap projections. Not Available: no plans to support in the next twelve months. tl;dr Quickly, let’s elaborate on the takeaways and table above. If Lightning Pages and Dynamic Forms meet your requirements, use them. That means you need a create or edit form for exactly one object on desktop, and you need to control field visibility. Lightning App Builder may be a declarative tool, but this is where it excels. If your requirements aren’t met by those constraints, keep reading. Either Flow or LWC will be a better fit. If you need additional logic or actions behind the form, use Flow or LWC. Both tools offer ways for your solution to do more than create or edit a single record. That “more” might be more advanced logic, such as branching or iteration, and it might be more actions like integrating with external systems, sending emails, or pushing notifications to a user’s mobile app. If you’re building a multi-page form or a wizard, start with Flow. Flow provides a linear navigation framework for orchestrating multiple forms together. You could use LWC to construct your own framework for navigating between forms, but we recommend letting Flow do the hard work for you, so that you can focus on the forms themselves. Got sophisticated UX requirements? Need to dynamically handle more than visibility? Build that stuff in a LWC. If your requirements can be achieved with simple theming and column-based layouts, you can build your forms directly in a low-code builder. For more fine-grained control over your form’s style, you’ll need the ultimate flexibility of LWC. Keep in mind, your choice doesn’t have to be an either/or – you can combine the power of multiple options. For example, if you need both Flow’s built-in navigation system and the full styling flexibility that LWC offers, use them together. What About Page Layouts? You may notice that Page Layouts are missing from our comparison in this document. Moving forward, the recommended way to configure record detail pages is Dynamic Forms in Lightning App Builder using Lightning Pages. It’s been a long time since we enhanced page layouts, and that trend will continue. Here’s why. Dynamic Forms are more flexible – you can place fields and sections wherever you want directly in Lightning App Builder, where you can take advantage of sections, tabs, and accordions. And just like you can do with components on the Lightning page, you can control the visibility of your fields and sections without defining multiple page layouts or record types. With Accordion and Tab components, you can restrict the amount of fields that are displayed initially. Guess what that means? Faster page load times. Layout management is simpler with Lightning Pages, since you can manage everything about your pages from Lightning App Builder – whether that’s the contents of the page or which users have access to the page. It’s no longer necessary to make updates in your page layout to make a change happen in your Lightning page. Not to mention, with the power of component visibility rules, you no longer have to create multiple pages (or page layouts) to control who sees which fields when. And that also means you only need to assign users a Lightning page rather than doing that and also assigning the page layout. As of this non-GA preview, Dynamic Forms has a handful of limitations. We recommend using Dynamic Forms wherever possible, and falling back to Page Layouts only when necessary. For reference, here are the high-level gaps we’re aware of and when we plan to fill them. Timeline for Lightning Pages & Dynamic Forms Support for standard objects Spring '21 Support on the Salesforce mobile app Summer '21 Support in Community record pages Far Future Configure tab visibility Summer '21 Show, hide, and collapse section headers Spring '21 Conditional formatting of fields Summer '21 Conditionally make a field required Summer '21 Conditionally make a field read-only Summer '21 What About Performance? Any performance considerations related to Dynamic Forms, screen flows, and LWC center on what framework those technologies themselves sit on. The ones that are based in LWC (besides, of course, an LWC) are going to outperform ones that are based in Aura. The LWC framework offers better performance because core features are implemented natively in web engines instead of in JavaScript via framework abstractions. If you’re not familiar give this blog post a read. Back in 2019, we did a case study comparing the performance of the same functionality in Aura vs. in LWC. As a result of converting DreamHouse from Aura to LWC, not only was the development experience far more aligned with current web front-end development standards and patterns, but the performance gains are significant. Lab measurements showed gains in the range of 2.4 percent to 24.7 percent for cold cache and gains in the range of 31.83 percent to 63.32 percent for warm cache on the same two pages. Now, which framework are our form technologies using? In other words, which form technologies benefit from this superior performance? Dynamic Forms, which is integrated in the Lightning pages metadata, are built on a brand new foundation that uses the LWC stack, which will enable us to implement some long-requested features. Building everything from ground up takes time, which is why Dynamic Forms currently has some limitations – like standard object and mobile experience support. Screen flows are built on a mixed stack. Today, the flow runtime client uses an Aura container application, and most of the individual components you can display in a flow screen are Aura. A few have been converted to LWC so far: Text, Checkbox, Date, and DateTime. The Flow team is committed to converting the flow runtime client to use 100% LWC components instead of Aura, with the exception of customer-created (that’s you!) Aura components. We can’t convert those for you, but there is an excellent Trailhead module that explains how to do so: Lightning Web Components for Aura Developers. It goes without saying: if you’re thinking about building a custom component for a screen flow or any other container, always go LWC. LWC is built on ... LWC of course. This is a freebie. 🤓 Navigating the Low-Code to Pro-Code Continuum Most of this doc focuses on helping you understand what functionality and level of customization is possible with Dynamic Forms, screen flows, and LWC. LWC is the most customizable and robust option for building a form, but it has the fewest guardrails in place. It’s up to you to build a component in a way that ensures security and scalability. Dynamic Forms is the least flexible, but there are far fewer opportunities for missteps. Flow sits somewhere in the middle – more powerful than Dynamic Forms but not quite at the level of LWC. By the same token, it has fewer guardrails than Dynamic Forms but is harder to break than custom code. If multiple tools fit the bill, the decision comes down to which tool is the right one for your team. Introducing the Salesforce Architect Decision Guides on the Salesforce Architects blog introduces some aspects to consider when making that decision. We won’t go into the details of each of those aspects here, but what we will do is interpret them for the specific tools this doc is assessing. Specialized Skills: What percentage of your team is already an expert in the tools you’re comparing? How many makers are well-versed and familiar with LWC or Javascript? How about makers who are experts in Flow Builder or have expressed an interest in dipping their toes? Generally speaking, Dynamic Forms and Flow are more attainable for a broader population of makers. Dynamic Forms is the most declarative form-building tool and will always be easier to learn than Flow. That said, the Flow team is committed to getting that bar as low as possible. Delegation of Delivery: Just because part of your requirements require LWC doesn’t mean the entire solution needs to be built with LWC. Consider how you can build your solution modularly, such that the bits that require LWC are coded, and the bits that don’t are built in a low-code solution. Doing so maximizes the impact of a diverse team and ensures that makers are solving problems appropriate for their specialization. Maintainability & Long-Term Ownership: If you anticipate this form will be maintained in the future by pro-code makers and your current team is highly familiar with Javascript frameworks, it makes sense to choose LWC as your solution of choice. If, on the other hand, low-code makers will be responsible for maintaining the form, consider how you can make the solution as configurable as possible for that audience. Diving Deeper As promised, we’re diving deep into a variety of comparison points and functional differences between Dynamic Forms, Screen Flows, Screen Flows with embedded LWCs, and the LWC framework itself. Available: works fine with basic considerations. Not Ideal: possible but consider an alternative tool. Requires ...: possible with help, such as from Apex. Roadmap: estimated to support by Summer ’21 (targeted go-live mid-June 2021). Our forward-looking statement applies to roadmap projections. Not Available: no plans to support in the next twelve months. Low Code Pro Code Dynamic Forms1 Screen Flow Screen Flow + LWC LWC Object Scope Single Object Available (Custom Objects) Available Available Available Cross-Object Not Available Available Available Available Object-Agnostic Not Available Available Available Available Form Scope Single-Screen Form Available Available Available Available Multi-Screen Form Not Available Available Available Not Ideal Location Lightning Record Page Available Available Available Available Lightning Home or App Page Not Available Available Available Available Communities Not Available Available Available Available Embedded Snap-Ins Not Available Available Available Available Utility Bar Not Available Available Available Available Object-Specific Action Not Available Available Available Roadmap Global Action Not Available Not Available Not Available Roadmap Salesforce Mobile App Not Available Available Available Available Field Service Mobile Not Available Available (Object-specific action) Not Available Roadmap Mobile SDK Not Available Not Available Not Available Roadmap External Sites & Apps Not Available Available Available Available Custom LWC Not Available Not Available Not Available Available Controller Logic & Actions Not Available Available Available Available Operation Within One Transaction Not Available Available Available Requires Apex Operate Across Multiple Transactions Not Available Available Available Available Integration Not Available Available Available Requires Apex Modular Design & Reuse Not Available Available Available Available Validation Respect System-Level Validation Available Available Available Available Custom Field Validation Specific to this Form Available Available Available Available Custom Form-Level Validation Not Available Not Available Available Available Security Elevate User Permissions Not Available Available Available Requires Apex Restrict Who Can Access Available Available Available Available Restrict Allowed Locations Not Available Not Available Not Available Available Interaction Design Conditional Visibility Available Available Available Available Conditional Requiredness Roadmap Not Available Available Available Conditional Formatting Roadmap Not Available Available Available Conditional Read-Only State Roadmap Not Available Available Available Standard Event Handling (such as onblur, onfocus) Not Available Not Available Available Available Custom Event Handling Not Available Not Available Available Available Styling Org and Community Themes Available Available Available Available Pixel-Perfect Styling Not Available Not Available Available Available Layout 2 Columns Available Available Available Available 4 Columns Roadmap Roadmap Available Available Beyond 4 Columns Roadmap Not Available Available Available Tab and Accordian Containers Available Not Available Available Available Translation Labels Entered in the Builder Roadmap Available Available* Not Available Labels in the Code Not Available Not Available Available Available UI Test Automation Unit Tests Not Available Not Available Available Available End-to-End Automation Requires Code Requires Code Requires Code Available Metrics Page Views Available Available Available Available* Time Spent on Form Not Available Not Available Available Requires Apex Time Form Completion Not Available Not Available Available Requires Apex Track Success Rate Not Available Not Available Available Requires Apex 1Dynamic Forms is a feature of Lightning Pages. Lightning Pages are declaratively configured with the Lightning App Builder. As part of Summer ‘20, Dynamic Forms is a non-GA preview feature, and we aim to GA it in Winter ‘21. Object Impact What objects will the form operate against? Just one object? Multiple objects? Dynamic Forms Screen Flow Screen Flow + LWC LWC Single Object Available (Custom Objects) Available Available Available Cross-Object Not Available Available Available Available Object-Agnostic Not Available Available Available Available If your form operates against a single Salesforce object, any of the tools we’re comparing will work. Things get a little more complicated with cross-object or object-agnostic forms. By object-agnostic, we mean inputs that don’t map to any Salesforce object. Perhaps your form represents a data structure that you’ll send to an external service, like Stripe or Docusign. Or perhaps you’re using several inputs in your form to calculate a value, and then committing that value to the database. For both cross-object and object-agnostic forms, Flow is a solid option. The components available in flow screens are agnostic by nature, so you can choose what to do with that data behind the scenes. For example, use the data entered in one form to create multiple records behind the scenes, or use the data to perform other actions like generating Chatter posts, sending emails, or connecting to external services. For simple cases, using existing LWC components like lightning-record-form can be a simple way to lower code needed to provide a robust solution. However, for scenarios where multiple objects are involved, Flow provides cohesive control for all objects and removes complexities of developers having to traverse complex relationships and dependencies. Form Scope Do you need a single screen, or will the user need to navigate between multiple screens to complete a task? Dynamic Forms Screen Flow Screen Flow + LWC LWC Single-Screen Form Available Available Available Available Multi-Screen Form Not Available Available Available Not Ideal If you can get all of your user’s inputs from a single-screen form, start with Dynamic Forms. If you need more functionality than what Dynamic Forms offers, the choice between Flow and LWC depends on a few other questions. What skills does your team have? For a more admin-heavy organization, we recommend starting with Flow. For a more developer-heavy organization, start with LWC. Is it OK to display a navigation bar at the bottom of your form? If the flow navigation bar is undesirable UX, swing towards LWC. What needs to happen behind the form? If you need the behavior to be configurable by an admin, build a flow. Otherwise, build a LWC. If you choose Flow, you may need to build a LWC anyway to achieve the right UX. If you’re already building a LWC to style your form correctly, consider whether embedding that component in a flow is overkill. If, on the other hand, your solution looks like a wizard, where the user navigates between multiple screens, think Flow. Flows come with a built-in navigation model, so you don’t have to build and maintain that yourself. The navigation is linear in nature, with forward-moving actions (Next and Finish), backward-moving actions (Previous), and a mechanism for saving the form for later (Pause). You can also build a form with non-linear navigation if it suits your purposes. For a great example of that, check out this Salesforce Labs package: Digital Store Audit. Location Where do you want to embed the form? Dynamic Forms Screen Flow Screen Flow + LWC LWC Lightning Record Page Available (Desktop) Available Available Available Lightning Home or App Page Not Available Available Available Available Communities Not Available Available Available Available Embedded Snap-Ins Not Available Available Available Available Utility Bar Not Available Available Available Available Object-Specific Action Not Available Available Available Roadmap Global Action Not Available Not Available Not Available Roadmap Salesforce Mobile App1 Not Available Available Available Available Field Service Mobile Not Available Available (Object-Specific Action) Not Available Roadmap Mobile SDK Not Available Not Available Not Available Roadmap External Sites & Apps Not Available Available Available Available Custom LWC Not Available Not Available Not Available Available 1 Flows and LWCs are supported in the Salesforce mobile app, but the Salesforce mobile app doesn’t support all the ways you can embed flows and LWCs. For example, object-specific actions are supported in mobile, but utility bar items are not. Since they require a record context, Dynamic Forms are supported only in Lightning Record pages. However, Dynamic Forms aren’t supported in Lightning Community pages. This limitation is in place because Lightning communities don’t use the underlying framework that Dynamic Forms depends on: Lightning Pages. We are definitely evaluating this as we do often hear feedback of wanting Dynamic Forms in Communities. Roadmap! Today, Dynamic Forms are supported only for custom objects on desktop, but Salesforce is actively working on supporting them for standard objects and the Salesforce mobile app as well. You can build flows that require a record context or flows that work globally. As such, you can embed flows in a variety of locations. For the record-contextual flows, that might be a Lightning record page, a Community record page, an object-specific action, or an Actions & Recommendations deployment. For the global flow, that might be the utility bar, other Lightning or Community pages, a snap-in, or an external application. Flows aren’t currently supported as global actions, but as a workaround you can wrap the flow in an Aura component. LWC supports a high degree of reusability, since you are creating components and able to associate with targets via metadata across Salesforce, Communities, and even in Open Source Projects. LWC components can also be embedded inside of your own website via Lightning Out. LWCs aren’t currently supported as quick actions (object-specific or global), but – much like you can with flows – as a workaround you can wrap the LWC in an Aura component. None of the form technologies covered in this doc are officially supported in Mobile SDK templates today. If Mobile SDK is paramount to your use case, you’re better off building your form in natively in your mobile application or building a Visualforce page. Roadmap! The Mobile SDK team is actively working on supporting LWCs within Visualforce pages. Controller What actions or logic do you want to be performed behind the scenes? Dynamic Forms Screen Flow Screen Flow + LWC LWC Logic & Actions Not Available Available Available Available Operate Within One Transaction Not Available Available Available Requires Apex Operate Across Multiple Transactions Not Available Available Available Available Integration Not Available Available Available Requires Apex Modular Design & Reuse Not Available Available Available Available Dynamic Forms is perfect if you need to use the values in your form to create or update a record. For anything beyond that capability, you’ll need to leverage Flow or LWC. That might be a layer of decisioning or iteration, or you might generate Chatter posts or emails using the inputs from the form. Flow offers standard actions for posting to Chatter, sending email, and interacting with Quip documents, so you don’t have to write code for the same operations. LWC offers rich interactions with single records and related objects through the use of wire adapters that interact with UI API. LWC can also interact with multiple records when using the wire for getListUi. Both Flow and LWC integrate with Apex, so you can easily close the gaps in whichever solution you choose. For example, if you require filtering records from an LWC you can always use the wire adapter for Apex to create complex SOQL queries. If you’re swayed by the click-based story, consider Flow as a viable alternative to an Apex controller for your server-side needs. A secondary question to answer here about the actions is whether you want to immediately commit them, or defer them to a particular part of your form. This is especially relevant if you’re in a multi-page form. Flow makes it easy to combine inputs from multiple forms (flow screens) and use them much later in the wizard (flow) to perform some operations. In fact, we recommend designing flows in just that way – perform actions at the end – in case the user bounces back and forth between screens, thereby changing their answers. Do you need to control which operations occur in which transaction? Transactions and governor limits are a way of life on the Salesforce Platform. If your use case is fairly simple, it may not be as important to control what transaction a particular operation occurs in. However, there are a few use cases where you might want to combine multiple operations into a single transaction rather than performing those across multiple transactions. Some examples: To Rollback Or Not to Rollback: That is the question. Let’s say your form creates multiple records behind the scenes. If the third record fails to be created, should the first two records be rolled back? If each of your actions are independent of each other, feel free to execute them in separate transactions. If they’re dependent, however, and you want the failure of one to also rollback the others, implement them in a single transaction. Downstream Impact on Governor Limits: Especially when your form creates or updates a record, consider what the downstream implications of that operation are. What processes, workflow rules, flow triggers, Apex triggers, or other items in the save order are going to fire based on this record change? And how do those collective changes impact the governor limits being consumed in that transaction? If a particular record change will result in a lot of downstream changes that impact your limits, consider isolating that record change into its own transaction. Batch Processing: Even in a UI context, you may need to batch multiple updates together. Let’s say your multi-screen form iterates over a large group of records. Rather than committing a record update after each screen, wait until you’ve collected the updates for all of the records and then submit one request to update all the records. When you use a Dynamic Form to create or edit a record, you’re only ever performing one operation, and that operation is always the start of a net-new transaction. When building a screen flow, you have significant control over what happens in a given transaction. Screens and Local Actions act as boundaries between transactions. Here’s a high-level summary of how transactions are managed in the screen flow architecture. The end user interacts with a screen, and then clicks Next. The client posts a request to the API with the inputs. The API receives the request, and a transaction and database connection are opened. The API then then calls the Flow engine to invoke the request. The Flow engine takes over and follows the appropriate path in the flow definition – until it hits a Screen or Local Action node. The engine then returns information about that node to the API. The API creates a response object that contains the details of the next screen to render, and returns that object to the client. At this point, database changes are committed (cue the save order execution), and the database connection and transaction are closed. The client uses the API response to render the next screen for the user to interact with. Rinse and repeat. In other words, screens “break” transactions. When that happens, any pending actions or DML are committed, the prior transaction is closed, and a new transaction is started. The right design – which operations you group into a given transaction – is your call. On the left, you can see a flow that collects inputs across multiple screens, and then performs several actions in one transaction. The flow on the right performs each operation in a separate transaction. For more details, check out these resources on Salesforce Help: Flows in Transactions and Flow Bulkification in Transactions. Your ability to control the transaction from an LWC comes down to the underlying services that LWC is using to perform its operations. If you’re using the lightning-record-form base component, the underlying operation (creating or updating the record) happen in a standalone transaction as soon as the form is submitted. In general, these rules apply: Each UI API call is isolated into its own transaction. If you need to perform multiple operations within a single transaction, send the inputs off to a server-side technology like an Apex controller or a flow. The regular transaction rules for that technology apply. Do you need to integrate with external systems? Both Flow and LWC support API integrations with an assist from Apex. Additionally, Flow supports External Services – which enables you to declaratively generate process integration building blocks. Anyone can integrate with legacy systems or web apps, as long as those services can be described with an OpenAPI-compliant schema. For example, you can generate actions for integrating with Slack or Google Sheets, and then configure your flow to post to a Slack channel or add a row to a particular Google Sheet. The end-to-end solution involves touching zero lines of code. Regardless of whether you do so with custom Apex or an External Service, a callout is a callout. Here’s what you need to know. A callout can take a long time. When a callout is executed synchronously, it's performed while a database transaction is open. Salesforce doesn't let you keep a database transaction open if you've got pending database operations. The main limitation to keep in mind is the danger of what we call a dirty transaction, where you perform a create, update, or delete operation and then, in the same transaction, execute a callout. This pattern isn’t allowed because of consideration #3, which of course exists because of considerations #1 and #2. You can work around this limitation by breaking the transaction. As we mentioned above, screens and local actions both reintroduce the browser context, which breaks the transaction. Use a Screen to break a transaction if it makes sense to display a new form to the user prior to making the external callout. If it doesn’t, we recommend a no-op local action, like this one available to install from UnofficialSF. Not familiar with local actions? They’re Aura components with no markup; the flow executes the invoke() method in the component’s Javascript controller. They’re the only actions available in Flow that aren’t performed server-side. In addition to being useful for breaking transactions, local actions are great for performing browser-level actions like firing toasts or force navigating the user. On the left is a flow that updates a record, then uses a callout to request a list of Slack channels. This flow fails at runtime, because the callout occurs in the same transaction after a pending database operation (the record update). To the right is a flow that updates a record, executes a no-op local action, and then uses a callout to request a list of Slack channels. This flow succeeds at runtime, because the callout is performed in a separate transaction from the record update. The impact of callouts on the transaction is less complicated with LWC. Generally speaking, you’ll perform your data operations using the Lightning Data Service, and then use an Apex controller to make the external callout. This design protects you from dirty transactions, since the LDS call is isolated in its own transaction separate from the Apex callout. What are your requirements for reusability and modularity? Dynamic Forms doesn’t support reuse. Each Dynamic Form is tied to a specific Lightning record page for a specific object. Though you can assign that Lightning record page to multiple apps, profiles, and so on. Much like you can write libraries, utilities, and components that are intended to be used across multiple other components, you can apply similar design patterns when creating flows with the power of subflows. Save your flows in smaller, more modular buckets, and then call them from other flows by using the Subflow element. If your design calls for it, you can build a flow that both stands on its own and is useful as a subflow of another one. Flow and LWCs can both be built for reuse, such that you can embed them in a variety of locations including external sites and Lightning Out applications. Validation What are your validation requirements? Dynamic Forms Screen Flow Screen Flow + LWC LWC Respect System-Level Validation Available Available Available Available All technologies that attempt to create or update a record adhere to system-level validation – whether those are classic validation rules or custom validation built into an Apex trigger. No matter what technology you use to perform a record change, every change goes through the save order. That means in addition to validation rules, the record change is processed by any number of before- or after-save flows, before or after triggers, escalation rules, assignment rules, and more. If you haven’t already, now’s a good time to bookmark and familiarize yourself with the Order of Execution. Inputs on a flow screen are by nature unbound, so the screen itself doesn’t natively adhere to system-level validation associated with a particular object. Whatever values you use to Create or Update records, however, are processed by the save order, which means they pass through the object’s system-level validation. Dynamic Forms Screen Flow Screen Flow + LWC LWC Custom Field-Level Validation Specific to this Form Available* Available Available Available Custom Form-Level Validation Not Available Not Available Available Available Just like page layouts, Dynamic Forms let you set requiredness and read-only state at the page level. However, you can’t override system-level settings. Flow provides flexibility for customizing validation on a form’s inputs. While some checks are performed in the client (like flagging missing required fields or incompatible values), none of the client-side validation blocks the user from trying to navigate. The real stuff happens on the server. When a user clicks Next, Flow sends the inputs to the server for validation. If any inputs are returned as invalid, navigation is blocked and the appropriate error is displayed. The server validates the inputs by checking: The input’s requiredness setting, or whether the entered value is compatible with the underlying data type. Custom validation on that input: Several standard components (Checkbox, Currency, Date, Date/Time, Long Text Area, Number, Password, and Text) support custom validation on a per-screen basis. Supply a Boolean formula expression and an error message to display when the formula expression isn’t met. Custom validation on the underlying component: If you’re building a custom LWC for a flow, add your own validation code to the validate() method. On the LWC side, most base components perform their own client-side validations. For example, lightning-record-form respects system-level requiredness, but not page-level requiredness. For your custom components, you can build your own validation mechanisms. Security What are your security requirements? Should the form check the user’s access before performing certain operations? (Especially important when building for guest users) Dynamic Forms Screen Flow Screen Flow + LWC LWC Elevate User Permissions Not Available Available* Available Requires Apex Do your users have field-level security to see this field? Do they have permission to create records for this object? What about access to this specific record, based on your org’s sharing rules? When something runs in user context, we enforce those access checks. Users can run a case update form only if they have the ability to update cases, the appropriate field-level security, and access to the record in question. But what if you don’t want to grant users a particular permission? What if you want users to be able to perform a particular operation when they're using your form, but not through any other form or interaction? That’s where system context comes in. System context is a way to elevate the running user’s permissions for the duration of the session, so that the user doesn’t need Update access to the Case object to successfully complete your case update form. This is especially useful for unauthenticated communities. Instead of granting guest users dangerous abilities, set your form to run in system context. Of course, system context is a double-edged sword and you should use it only when necessary. When a form runs in system context, every single CRUD operation bypasses object- and field-level security & sharing – not just the specific operation you care about. Note that system context has no bearing on who Salesforce considers the actor – the name you see in the Last Modified By field. For each operation that your form performs, such as the case update, the actor is the running user even if the form runs in a different context. Dynamic Forms always run in user context, and there’s no way to override this behavior. Screen flows run in user context by default, but you can set them to run in system context. It’s your choice whether the flow should grant access to all data or if it should still enforce record-level access like sharing. If you embed a Lightning component in a flow that runs in system context, the flow doesn’t override the component’s context. If you need to bypass user access checks, we recommend using the flow to perform those operations and pass the appropriate data into or out of the Lightning component. If your flow calls Apex actions, there are some more nuances to understand. If the Apex class is set to inherited sharing, it runs in system context with sharing no matter what the flow is set to. If the class has no explicit sharing declaration, it runs in system context without sharing no matter what the flow is set to. If the class is set to with sharing or without sharing, it does so and overrides the flow's context. Best practices: Leave the flow to run in its default context unless you need to elevate the running user’s access for a specific operation. If the flow performs a variety of operations and not all of them require elevated access, use a subflow to isolate the operations that should run in system context. LWCs run in user context by default, but you can override that in an Apex controller. Operations performed through the UI API are run in user context. Operations performed through an Apex controller depend on that class. To perform those operations in system mode, set the Apex class to with sharing or without sharing. Do you want to control who can access the form? Dynamic Forms Screen Flow Screen Flow + LWC LWC Restrict Who Can Access Available Available Available Available To address this requirement, often you can look to the container you’re embedding your form in. For example, you can assign Lightning pages to be available for particular apps, record types, or profiles. If particular inputs in your form are sensitive, use visibility rules to further control what is displayed to who – this feature applies to both Dynamic Forms and screen flows. You can restrict a flow to particular profiles or permission sets, much like you can an Apex class or Visualforce page. By default, flows are unrestricted, which means that any user with the Run Flows user permission can run it. Best Practices: If you’re exposing a flow to guest users, grant the guest user profile access to only the flows they need. You can add Run Flows to the guest user profile but we consider that a dangerous practice. Be especially careful with flows that operate in system context. We highly recommend you restrict those flows to a particular set of users, since they have fewer checks and balances in place to protect your data. For LWCs, you can check the running user’s permission assignments to confirm if they have a particular standard or custom permission. Directly from Javascript, you can import Salesforce permissions from the @salesforce/userPermission and @salesforce/customPermission scoped modules. Or you can use Apex to check the same. Do you want to control where the form can be embedded? Dynamic Forms Screen Flow Screen Flow + LWC LWC Restrict Allowed Locations Not Available Not Available Not Available Available Once a screen flow is activated, it’s available in all the locations that screen flows are supported, regardless of whether you intended it to be available everywhere or not. That said, Flow Builder supports multiple types of flows that have screens. The bread-and-butter type is Screen Flow, but there are a few other specialized types that are restricted to specific locations. For example, only Field Service Mobile Flows are supported in ... you guessed it, the Field Service mobile app. The same story goes for Contact Request Flows, which are supported only in communities. Regardless of the flow type, the individual making the flow has no control over where the flow can be embedded. The flow will be available in every location supported for that flow type. LWCs, on the other hand, are available in a given location only when it’s been added as a valid target. So you can make a component available on Record pages and not available as a utility bar item. Interaction Design Should your form react dynamically to interactions or conditions? Static forms are a thing of the past. Today, it’s all about dynamically updating the form with the right properties and values for this user, this time, this place. Let’s talk about what’s possible in this vein for Salesforce’s form-building tools. Dynamic Forms Screen Flow Screen Flow + LWC LWC Conditional Visibility Available Available Available Available Conditional Requiredness Roadmap Not Available Available Available Conditional Formatting Roadmap Not Available Available Available Conditional Read-only State Roadmap Not Available Available Available Visibility can be dynamically controlled in all three tools. Both Dynamic Forms and Flow Builder address this with features called Component Visibility. With this, you can declaratively show or hide fields based on other values on the form or whether the user is on a mobile device or not. With Dynamic Forms, you’re limited to fields on the associated object and there are some limitations on the supported field types and operators. With Flow, you can base a visibility rule on other inputs on the screen, as well as other resources populated earlier in the flow like formulas or values from other records. Device-based Rules: It’s not obvious from the get-go, but you can use a formula to show or hide a particular field when the user is on a mobile device. Write a flow formula that checks the value of the $User.UIThemeDisplayed global variable. If the value is Theme4t, the user is on the Salesforce mobile app. Evaluating Other Resources: Manual variable and formula references are evaluated only on the server. So whatever value that resource has when the screen first renders is the value it will have until you navigate to another screen. On navigation, the flow runtime submits a request to the flow engine (the server) and gets back the latest values of the manual variables and formulas. If you expect your visibility rule to update as the user passes through a single screen (aka onblur), make sure that you’re referencing only values from the other components on the screen. If you need to dynamically control any other properties, such as whether a field is required or read-only, your best bet in the short term is LWC, where you get full control. That’s especially true if you have bespoke requirements for what to do onblur or onclick. Roadmap! For Lightning Pages, which includes Dynamic Forms, we anticipate enabling conditional requiredness, conditional formatting, and conditionally setting an input to read-only in the next 12 months. Dynamic Forms Screen Flow Screen Flow + LWC LWC Standard Event Handling (such as `onblur`, `onfocus`) Not Available Not Available Available Available Custom Event Handling Not Available Not Available Available Available Now for custom events. If some of your inputs or the entire form need to communicate with something else in the page, LWC is your only option. For more details, check out Communicate with Events and Communicate Across the DOM in the Lightning Components Dev Guide. Styling How sophisticated is your desired styling and CSS? Dynamic Forms Screen Flow Screen Flow + LWC LWC Org and Community Themes Available Available Available Available Pixel-Perfect Styling Not Available Not Available Available Available Both Dynamic Forms and flows respect declarative theming features. If you need control beyond what Salesforce Themes or Community Branding Sets support, you need the wide open spaces of LWC. Reminder: You can embed Lightning components in flows. So if you need pixel-perfect control over the look-and-feel of your form but want to use the other benefits of flows, like the navigation model, you can have the best of both worlds. Layout What are the layout requirements for your form? Dynamic Forms Screen Flow Screen Flow + LWC LWC 2 Columns Available Available Available Available 4 Columns Roadmap Roadmap Available Available Beyond 4 Columns Roadmap Not Available Available Available Tab and Accordion Containers Available Not Available Available Available Dynamic Forms supports two-column layouts. Dynamic Forms can be broken up into individual sections with fields. These sections can be placed in components such as tabs and accordions to create easy to use and organized layouts. Flows can be rendered using a two-column layout. This feature is supported only when you add a flow to a Lightning or Community page, or when you use a direct flow URL, such as for a custom button. Due to our near-term roadmap, we recommend not using this feature. Roadmap! Salesforce is actively working on multi-column screens for Flow Builder. When this feature ships, you’ll be able to declarative configure screens with up to 4 columns. With LWC, you can use lightning-record-[edit|view]-form and the supporting lightning-[input|output]-field to control layout. The only layout restrictions are those from HTML/CSS. lightning-record-form respects the section configuration in the associated page layout – if a section is two-column in the page layout, it’s two-column in this component. Translation Does your form need to be localized to other languages? Dynamic Forms Screen Flow Screen Flow + LWC LWC Labels Entered in the Builder Roadmap Available Available* Not Available Labels in the Code Not Available Not Available Available Available If you’ve localized your custom fields, those translated labels are respected on Dynamic Forms. However, localization isn’t supported for labels that you add to components in the same Lightning page. For example, the label for a tab in the Tabs component. Roadmap! Salesforce is actively working on filling this gap. Soon, you’ll be able to reference Custom Labels for any string or rich text property in Lightning App Builder, such as to localize a custom Tab or Accordion label or the title you added to a Report component. With the power of Translation Workbench, Flow supports translation of user-facing labels for some, but not all, of the available screen components. For the following screen components, you can localize the label, help text, and error message: Text, Long Text Area, Number, Currency, Checkbox, Radio Buttons, Picklist, Multi-Select Picklist, Checkbox Group, Password, Date, and Date/Time. The other components don’t yet support translation, because they’re Lightning components under the hood and we don’t have a way of identifying which Lightning component attribute should map to label vs. help text vs. error message. The same issue applies for our out-of-the-box actions, like Send Email or Post to Chatter. However, there is a workaround! If you define the translated labels with a Custom Label, you can reference that custom label in the action or component when you configure it in Flow Builder. Create a flow formula that references the custom label, and reference that formula in the appropriate places in your flow. Now for LWC. Certain base components automatically inherit translations of the associated object’s fields, help text, and validation messages if they’ve been configured in Translation Workbench. For example lightning-record-form . If you need to introduce novel translatable labels in your code, Custom Labels are still the unsung hero. Declare the custom label you need, and then import it into your component from the @salesforce/label scoped module. UI Test Automation Do you need automated testing? Dynamic Forms Screen Flow Screen Flow + LWC LWC Unit Tests Not Available Not Available Requires Code Available End-to-End Automation Requires Code Requires Code Requires Code Available Consider your requirements for UI test automation. Unit tests enable more granular automation and validation that works with industry standard CI/CD systems and tools, which can test the components business logic, its Javascript controller, and its outputs. Going exclusively with low-code you will not be able to self author tests, but Salesforce rigorously tests our end-to-end offerings. If your component’s methods are complex enough that you want them to be tested individually, put the methods into dedicated JS files. That way you can import them into a LWC and into a Jest test with something like import { sort } from 'c/utils';. With end-to-end (Selenium) automation, you can simulate how the user interacts with your form. However, these tests can't verify the outputs of each method being performed. You can write these tests for any standard or custom UI – Lightning pages and screen flows inclusive. This recent blog post UI Test Automation on Salesforce compares the various options you have for building end-to-end automation on Salesforce. Included are considerations for when to use a no-code solution from an ISV, build your own custom test automation solution, or use an open source test framework like Selenium WebDriver or WebdriverIO. These solutions are valid for any UI interaction in Salesforce, whether that’s a Dynamic Form in a Lightning page, a screen flow in a utility bar, or an LWC in a flow in a quick action. Metrics Do you need to track usage of your form? Dynamic Forms Screen Flow Screen Flow + LWC LWC Page Views Available Available Available Available* Time Spent on Form Not Available Available Available Available Track Form Completion Not Available Available Available Available Track Success Rate Not Available Available Available Available If you need to track overall usage and adoption of your form, start with the low-code tools. Both Dynamic Forms and Screen Flows are trackable using out-of-the-box custom report types, though you’ll get more granularity from the Screen Flow tracking reports. If you need to track usage of a LWC, out-of-the-box availability depends on where you’re using that LWC. If it’s on a Lightning page, whatever is available for tracking Lightning page usage applies to your LWC. The same story goes for LWCs that are embedded in flows. Dynamic Forms themselves aren’t trackable out-of-the-box, though you can track the usage of the parent Lightning page through Lightning usage objects. To track the standard Lightning pages, use the Users with Lightning Usage by Page Metrics custom report type. For the same on custom Lightning pages, use the Users with Lightning Usage by FlexiPage Metrics custom report type. For tracking adoption of your specific form (not just the page it lives in), Flow’s got you covered. Use the “Sample Flow Report: Screen Flows” to answer questions like: What’s the completion rate for this form? Is it being well-adopted? How long does it take users to complete this form? Which screen do users spend the most time on? How often do users navigate backwards? How often do errors occur? If the standard report doesn’t meet your needs, clone it to make your own changes or build your own from scratch by using the Screen Flows report type. To track the same for an LWC that isn’t embedded in a screen flow or Lightning page, there’s no out-of-the-box option. You can build a DIY solution by using Apex. Closing Remarks Hello, and welcome to the end of this guide! 🏁 Kudos for making it through the equivalent of 9 double-sided pages. Have a good day and thanks for the read. Hope you learned something. Tell us what you think Help us make sure we're publishing what is most relevant to you: take our survey to provide feedback on this content and tell us what you’d like to see next.
0 notes
Text
Overcoming Content Challenges
Authors: Steve Glancey and Bryan Meszaros from the Digital Signage Connection
Although often relegated to the back seat, the process of content creation drives the success of a digital signage program. It is therefore essential to develop a mental map of each component stage, from strategizing and budgeting, through development and optimization, and to address the unique requirements and challenges of each one. With a clear plan in place, potential stall-outs are easily avoided, and obstacles, overcome. What follows is a collection of tips and tricks that we have developed in the course of our experience, and found helpful in navigating some of the difficulties that inevitably accompany a creative undertaking. We here pass them on to you to help better position you for your next endeavor.
Obstacle #1: Project Ownership
The nature of project ownership is critical and, unfortunately, often blurred in understanding. Is the person being said to "own" a project responsible, by definition, for all aspects of its design and production? In a word: no! Rather, they manage and monitor the numerous interlocking parts of the creative engine - the gathering of assets, messaging, design, and approval - each of which is the domain of a different person, or team. This last, the granting of approval, is generally understood, and intended as the concluding step. However, its finality hinges upon the clear delineation and coordination of the preceding steps, without which requests for further changes are far more likely to arise. Changing even one textual element could disrupt the flow, look and feel of the whole product, and force the designer to go back and rework it from the ground up to accommodate the change.
Obstacle #2: Content Strategy
Designers create content within "closed environments;" they alone experience, and interact with their creations during the design process. Yet given that their creations are ultimately destined for display in "open environments" subject to such variables as viewing distance, demographics, audience journey, time of day etc., it's important to keep in mind that every content piece adhering perfectly to fundamental principles of design in the abstract carries no guarantee of effectiveness when it goes "live." All these variables, and more, should be researched and applied to your content: type, structure, design, refresh rate etc. as they will deeply impact the audience engagement with, and effectiveness of the intended message.
Obstacle #3: Playlist Strategy
Optimizing your playlist requires the delicate counterbalancing of numerous considerations, all within the framework of your budget and network objectives. Loop length, for example, must be in step with audience dwell time. Make your playlist too long, and it will be a waste of network resources; too short, and you will forfeit network opportunities. Couple dwell time with the return rate of your audience; multiply by an effective frequency of 4-7 (the number of times a viewer needs to be exposed to a message before it is thoroughly communicated); and add to that any wish to day-part, or employ triggers, feeds, or logic that activates different content depending on the time, or viewer body-language or demographics and you will begin to get the measure of what it is to develop a strategic plan that truly capitalizes on the possibilities of digital signage.
Obstacle #4: Gathering Assets
The process of gathering assets is more complicated than the phrase would suggest, as they are not, in fact, necessarily useable simply by virtue of being "digital" - a reality difficult to concede for clients unfamiliar with concepts such as image quality, and display resolution. Fortunately, a little proactive education explaining such fundamentals within the specific context of your plan to develop content for a client (using which editing program, and in which output format) often goes a long way towards bringing about the submission better-quality files, even if they are not all vector graphics, files of 300dpi or more are ideal. Of course, there is always the possibility that there are no usable assets to uncover. Sometimes the image quality of a graphic is too poor, or the asset does not exist in a version that supports editing, requiring you to start from scratch. The bottom line is: avoid assuming anything about your client's level of knowledge or organization, and be prepared to explain why their idea and/or materials may need to be scrapped or revised.
Obstacle #5: Content Licensing
Content licensing does not abide by the "finders, keepers" rule. Possession of an asset does not necessarily confer the right to display it in a commercial setting, even if it was acquired "for free" - a reality sometimes difficult to accept in a world where side-stepping costs is so often possible. However, several lawsuits over the years have been brought against digital signage companies whose network owners failed to negotiate an agreement (either in the form of a one-time payment, or an ongoing subscription) with the owner of every asset in their playlist. Given the costs incurred by such a lawsuit, it's essential to address licensing costs early and often, and to ensure that a line item appears in the budget from the very beginning. "But that CNN feed says that it's free..." Look again at the terms. Free news feeds, and most free or inexpensive weather feeds are available only for non-commercial use.
Obstacle #6: Creative Budgeting
Talking money is like talking politics: everyone has an opinion, and no one is right. The question of budget must therefore be addressed both early in the development process, and regularly throughout the lifecycle of a project, for content carries a cost not only to create, but to maintain. The viewing frequency, and relationship it bears with its physical context give it a limited shelf-life, and while you would ideally have a surplus of content from which to chose, and/or assets with an automated feature, the project will, in fact, require ongoing programming, editing and management. True, most CMS (content management systems) now support advance scheduling, but someone still needs to oversee that task. The success or failure of a digital signage project therefore will depend on the project owners ability to accurately and creatively manage the fixed initial costs and variable ongoing costs to collect, license, and schedule content assets all powered by the most costly line item: human capital.
Obstacle #7: Stretching the Dollars
Were money not an obstacle, we would all simply hire ABC or Lucasfilm to build out our playlists, and keep them fresh. But money is an obstacle. Budgetary constraints come into play for everyone at some point. That is why I am a proponent of building playlists with an eye to maximizing value, as opposed to maxing-out one's resources. This can be done in a variety of ways, including investing up-front in custom templates; reusing assets that your company originally used elsewhere; leveraging user-generated, and data-driven content; strategically recycling content; and outsourcing parts of your playlist to licensed feeds or competitively priced creative agencies.
Obstacle #8: CMS and Hardware
This subject, once broached, easily leads the ensuing discussion down the proverbial rabbit hole, but my goal is simply to highlight a few of the cascading effects of your choice in CMS, and hardware. With respect to CMS, some solutions are new, and less refined due either to their time on the market, or target simplicity, and for content managers posting only simple messages, they present an appropriate solution. However, with simplicity come limitations, and complex networks may feel the lack of editing and programming options, readymade app stores, KPIs, feeds, triggers, localization, advertising market platform integration, weighted playlists and logic playback configuration. They may also feel limited by the breath of file-type options, API, security settings, reliability, remote management features, emergency messaging capabilities, etc. If so, there are other more established, robust CMS to consider.
The playback quality of the hardware you choose is also something to consider carefully, as it has a profound impact of viewers' visual engagement with your message. And finally, careful thought must be put into your connectivity strategy. Will you connect your system via Wi-Fi for which you pay with a monthly bill, or through a mobile provider that you pay by the gigabyte - a costly proposition if your playlist includes large video files or frequent content updates. There is no right answer, just the solution that best fits your content strategy.
Obstacle #9: Optimization
The effectiveness of your content is in direct measure to the quality of your messaging, so even the most thoughtfully designed content campaign can benefit from regular, controlled tests of its effectiveness. A/B testing or before and after comparisons are the easiest, most affordable kind of assessment, and can bring to light adjustments likely to increase the ROI (return on investment) of the campaign at hand. For example, how did one store do vs. the other without the promotion running or using the same content in two different locations with a slight change to the CTA? Audience engagement and reaction are surprisingly difficult to anticipate; that which is relevant, which resonates with viewers, and speaks to them in "their language" changes all the time, so if effectiveness is your end, self-assessment is your means.
Obstacle #10: Creating Value
What objective do you aim to meet by means of your digital signage network? From your viewers' point of view, a digital sign is not much different from a traditional printed sign. Both boil down to a message on a wall, and therein lies their value for audience and advertiser alike. Why then is so much attention and money diverted to the frame and mounting instead of the message? Mounts, frames, and hardware are inherently depreciating assets. It is the quality of your content strategy and execution that will make your 2-million dollar investment in digital signage worth 1 million, or 5. Funneling every piece of content through your network objective (ROO/ROI) is therefore the aim to which you should direct your primary energy as a network operator on day one and year five.
Interactive Design Cafe provides end-to-end digital signage solutions with the latest touchscreen displays and multi-screen video walls, to glasses-free 3D signage and holographic advertising players. We also offer both out-of-the-box software solutions, as well as fully customized software, while specializing in branding, customer experience and service design. We are a design consultancy, not just a “sales” operation, so we often fly out to our clients location to install hardware / software, and we strive to develop long lasting relationships with our clients. Our goal is to provide the most innovative and engaging experience for your brand with top notch service and support.
To learn more about Interactive Design Cafe and how we can help your business, please visit our website http://www.interactivedesigncafe.com
#Digital Signage#Content Marketing#Marketing#Advertising#CX#Experience Design#customer experience#iDesign Cafe#Digital#Content#New Media#Touchscreen#Tech#Multitouch#Kiosk#LCD#Touch#4K#CMS#Interactive#Interactive Design Cafe#Media
1 note
·
View note
Text
Getting Started with Phyton and Django - Hello World Web App
Have you ever heard anything about Phyton? If you're reading this, I bet you do! Python is an interpreted, high-level, general-purpose programming language with an object-oriented approach: it was created by Guido van Rossum in 1991 and constantly updated ever since. It's dynamically typed and supports multiple programming paradigms, including procedural, object-oriented, and functional programming. Phyton went through two major upgrades: the first in 2000, with the release of the 2.0 version, which introduced a garbage collection system capable of collecting reference cycles; the second in 2008 with the release of Python 3.0, which was a major revision - mostly backward-incompatible - of the language. Following the Phyton 3.0 release, most developers chose to stick to the 2.x version, which eventually led to extended support for Python 2.7 (the last release in the 2.x series) up to 2020. As of today, all the main resources for Phyton and CPython (an open-source implementation of Phyton) are maintained and managed by the Phyton Software Foundation, a non-profit organization.
Phyton 2 vs Phyton 3
Python 2 and Phyton 3 are the two major versions of Phyton that are still used nowadays. These two versions are quite different: although Phyton 3 arguably has a better syntax, is more semantically correct and supports newer features, most developers chose to stick with Phyton 2 until recent years thanks to a much wider database of libraries and resources available on the web. Although there still is a bit of a debate in the coding community about which Python version was the best one to learn nowadays (Python 2.7 vs 3.5), there is now a general consensus on considering Phyton 3 the most appropriate choice for newcomers and also for those who want to update their coding skills. For this very reason, in this quick tutorial, we're going to use the Phyton 3 syntax.
Console, Desktop, or Web?
Just like most programming languages, such as Java, C# and so on, Phyton can be used for a number of different purposes. The most common scenarios are: Console Applications: console applications are programs designed to be used via a text-only computer interface, such as a text terminal, the command line interface of some operating systems (Unix, DOS, etc.). Common examples include openssl, ping, telnet, defrag, chkdsk, and the likes. Desktop Applications: desktop applications are programs designed to be used via a Graphical User Interface (GUI): such GUI can either be designed by making use of the operating system native libraries or made from scratch using the language native elements (or specifically designed GUI frameworks). Typical examples of desktop applications include Photoshop, Thunderbird, Chrome, and so on. Desktop application development dominated the software world for many years and are still widely used, even if the broadband + Internet combo is making web-based applications more appealing year after year. Web Applications: web applications or web apps are client-server computer programs where the client - including the user interface (UI) and the client-side logic - runs in a web browser: common examples include webmail (such as GMail), e-banking websites, and so on. On a more general basis, we could say that most interactive websites can be defined as web applications, from the CMS who can help you to write an essay on time management to more complex, fully packaged products such as Wordpress and Joomla. In this tutorial, for the sake of simplicity, we'll talk about the latter: therefore, our Hello World sample will be a (minimal) Web Application.
Phyton Web Frameworks
The first thing you have to do before starting is to pick a decent Phyton Web Frameworks: although you can write Phyton using any text editor (including Notepad), you should definitely stick with a GUI framework to benefit from very useful features such as syntax highlighting, built-in compiler/debugger, folder tree lists, windows tiling, and so on. These are the most popular high-level web frameworks for Phyton available nowadays. Django The Web framework for perfectionists (with deadlines). Django makes it easier to build better Web apps more quickly and with less code. Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. It lets you build high-performing, elegant Web applications quickly. Django focuses on automating as much as possible and adhering to the DRY (Don't Repeat Yourself) principle. TurboGears The rapid Web development web framework you've been looking for. Combines SQLAlchemy (Model) or Ming (MongoDB Model), Genshi (View), Repoze and Tosca Widgets. Create a database-driven, ready-to-extend application in minutes. All with designer-friendly templates, easy AJAX on the browser side and on the server side, with an incredibly powerful and flexible Object Relational Mapper (ORM), and with code that is as natural as writing a function. After reviewing the Documentation, check out the Tutorials web2py All in one package with no further dependencies. Development, deployment, debugging, testing, database administration and maintenance of applications can be done via the provided web interface, but not required. web2py has no configuration files, requires no installation, can be run off a USB drive: it uses Python for the Model, View and the Controller. It main features include: a built-in ticketing system to manage errors; internationalization engine and pluralization, caching system; flexible authentication system (LDAP, MySQL, janrain & more); Available for Linux, BSD, Windows, and Mac OSX; works with MySQL, PostgreSQL, SQLite , Firebird, Oracle, MSSQL and the Google App Engine via an ORM abstraction layer.
Hello World in Phyton
Before installing Django, let’s see how we can generate a sample "Hello World" web page using Python. From a Linux shell, open your favorite text editor (mine is nano, but you can also use vi or anything else) and type the following: #!/usr/bin/env python import textwrap from six.moves.BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer class HelloRequestHandler(BaseHTTPRequestHandler): def do_GET(self): if self.path != '/': self.send_error(404, "Object not found") return self.send_response(200) self.send_header('Content-type', 'text/html; charset=utf-8') self.end_headers() response_text = textwrap.dedent('''\ Hello World
Hello, World!
... Here we are! ''') self.wfile.write(response_text.encode('utf-8')) server_address = ('', 8000) httpd = HTTPServer(server_address, HelloRequestHandler) httpd.serve_forever() ... And that's pretty much it! This simple program can be executed and then tested by visiting http://localhost:8000/ with any browser.
Hello World with Django
Writing a Hello World sample web page with Django is definitely more difficult than doing it using blue Phyton... But there's a tremendous advantage in doing that: the scaling factor. If you're dealing with a more complex web application, you won't be able to write it using pure Phyton without losing control over the code pretty soon. The good thing about Django is that, once you learn the basics, you'll be able to deal with your projects in a comfortable fashion and with a great learning curve. Installing Django The first thing to do is to make sure that you have Django installed. Assuming you are using virtualenv, the following command should suffice: > pip install django Right after that, we need to create a Django project and a Django app: > django-admin startproject hello_world_project > cd hello_world_project > python manage.py startapp hello We now have a project called hello_world_project and an app named hello. When we executed python manage.py startapp hello, Django created a folder called hello with several files inside it. In this sample tutorial we won't use most of these files, hence we can delete them: the file that can be deleted are the following: hello/admin.py hello/models.py the whole hello/migrations folder. Writing the code Once done, edit the hello/views.py file in the following way: import textwrap from django.http import HttpResponse from django.views.generic.base import View class HomePageView(View): def dispatch(request, *args, **kwargs): response_text = textwrap.dedent('''\ Hello World
Hello, World!
... Here we are! ''') return HttpResponse(response_text) As we can see, we have basically created a Phyton class, which in Django is called a view. More specifically, this will be the class that will output the same HTML snippet we previously wrote using pure Phyton. Right after that, create a new hello/urls.py file with the following contents: from django.conf.urls import patterns, url from hello.views import HomePageView urlpatterns = patterns( '', url(r'^$', HomePageView.as_view(), name='home'), ) Next, edit the hello_world_project/urls.py file to make it looks like this: from django.conf.urls import patterns, include, url urlpatterns = patterns( '', url(r'', include('hello.urls')), ) As we can see by looking at the code, these urls.py files are the routing system that will be used by Django to understand what view to load whenever a specific URL is requested by a user. In a nutshell, we just told to our main project routing file (hello_world_project/urls.py) to route all the requests pointing to the site root to the app routing file (hello/urls.py), which in turn will point to the HomePageView view, that will then be executed - eventually returning the HTML content. The last thing we need to do is to edit the hello_world_project/settings.py file and remove some unused stuff that could prevent our sample web application from running. Around line 30, find a variable called INSTALLED_APPS: remove the first four items of the sequence and add 'hello' to the end. INSTALLED_APPS = ( 'django.contrib.messages', 'django.contrib.staticfiles', 'hello', ) Immediately after these lines, find the MIDDLEWARE_CLASSES variable and remove the line containing SessionAuthenticationMiddleware. MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) That's it: our Django web application is ready. You can start it by typing the following: > python manage.py runserver And then visit http://localhost:8000/ in your browser to see it in action.
Conclusion
That's pretty much about it. If you are interested in Phyton and you would like to go further, we strongly suggest to visit one of the following resources: PhytonTips.com FullStackPhyton The Hitchhiker's Guide to Python ... and so on. See you next time, and... happy coding! Read the full article
0 notes