Category Archives: Google Developers Blog

News and insights on Google platforms, tools and events

From Idea to Impact: How a team from Solution Challenge launched an environmentally-focused social enterprise

Posted by Merve Isler, Regional Developer Relations Community Manager, Turkey

Banner with image of Aysu Keçeci, member of Google Student Developer Clubs chapter at at Bogazici University in Istanbul

Some challenges affect everyone regardless of borders or nationality, and combating climate issues is no different. Aysu Keçeci, a student in Turkey with an avowed reverence for the sea, found herself increasingly distressed by the growing amount of plastic in the world’s oceans. She notes, “As an Aegean, the seas are a big part of my life, Unfortunately, I have grown up observing that our waters are polluted daily, and I know that plastics now make up 80% of marine garbage, and if we don't take precautions, there will be more plastic in our seas than fish in 2050. That's why plastic pollution has always been a problem I wanted to address.”

As part of a global community, Google Developer Student Clubs (GDSCs) members are empowered to make an impact on the issues that matter both on the global and local scales. She decided to join the 2021 Solution Challenge, and took part in a local hackathon organized by the GDSC Solution Challenge Incubation Program. She and other GDSC members at Bogazici University on her team chose to create an app to encourage plastic recycling, never guessing it would lead to mentorship, guidance, and tools to launch an environmentally-focused social enterprise start-up.

Choosing the features and functions

When building the app, the team leveraged Flutter for its cross-platform advantages and used other Google tools such as Firebase, Firestore, Cloud, Maps, Fonts, and Analytics. In the app, users locate and open dedicated recycling bins by scanning a QR code or using a smartwatch or wristband. They can earn “coins” based on the amount of plastic they recycle and by engaging in challenges. Meanwhile, the app, called WE, displays tangible benefits to the environment from the users’ recycling efforts.

Encouraging behavior change with gamification

Aysu acknowledges that designing an app is one thing--bringing it into reality is another. Keçeci shares, “in real product development, user experience, ease of learning, and convenience become more critical than when you are designing a prototype.” To drive adoption, the WE App team chose gamification as a framework for the recycling app, looking to engage and motivate users by adding competition, social interaction, and feedback into the UI and help make recycling easy and fun. Aysu was particularly inspired by entrepreneur Colin Huang, who integrated gamification into Pinduoduo, an e-commerce company that encourages user collaboration.

From idea to impact

After three intense days of working at a feverish pace on little sleep, Aysu and the team presented their idea--which won the hackathon! The WE app then got selected as one of the top 50 projects in the Solution Challenge (with the support of Solution Challenge Incubation Program), landing the team special mentorship sessions with Google developers. This support on many levels led to their acceptance in one of Turkey’s top incubators: İTÜ Çekirdek İncubation Center, which offered a working space and exposure to the center’s network of companies and entrepreneurs. The project was also accepted into the Arya WIP Investment Preparation Acceleration Program, which supports women entrepreneurs, earning the team even more credibility and traction.

Perseverance makes all the difference

Aysu acknowledges that working with a small team of three developers can present new problems and opportunities every day--but support from Google mentors, jury members, and GDSC helps. “It's very bumpy, but it's been a journey that we've learned a lot about and enjoyed,” she says. The team is currently working with Borusan Mannesmann, one of the largest industrial companies in Turkey, to provide the app and bins to employees. They’re also competing in the semifinals of the İTÜ Çekirdek İncubation Center’s Big Bang Startup Challenge and talking with other potential corporate partners.

Looking towards the future

The team is already thinking about WE’s next stage. She and the other founders plan to redesign the WE bins to look more stylish and start producing simple products from the plastics collected, perhaps by partnering with innovative companies around the world that value sustainability.

“I've actually seen that people value living in a sustainable world. So it was surprising and gratifying for me to realize that they were ready to do something about it and take action because even people who did not recycle in the old status quo adapted very quickly.”

As she considers the progress she’s made so far, Aysu credits the GDSC’s culture of innovation, support, and feedback for playing a big part in WE’s creation and success. “You can quickly get involved in a community,” she says, “and thus you have a better opportunity to pursue things that excite you.”

Learn more about the activities and opportunities GDSCs offer and how to get involved.

Register your team for the Solution Challenge in January and make an impact.

Promote your Google Workspace Marketplace apps with the new badge for developers

Posted by Elena Kingbo, Program Manager

Recently, Google Workspace Marketplace launched new features for developers to improve the application search and evaluation experience in the Marketplace for our Google Workspace admins and end users.

Continuing with updates to further improve the developer experience, we are excited to announce Google Workspace Marketplace badges.

The new badges will allow developers to promote their published Google Workspace Marketplace applications on their own websites. Users will be taken directly to the Marketplace application listing, where they can review application details, privacy policy, terms of service, and more. These users will then be able to securely install applications directly from the Google Workspace Marketplace.

This promotional tool can help you reach more potential users and grow your business. By being part of the Google Workspace Marketplace ecosystem, you receive direct access to the more than 3 billion Google Workspace users, where they can browse, search, and install solutions they need. To date, we've seen a stunning 4.8 billion apps installed in Google Workspace, transforming the way users connect, create, and collaborate.

The new Google Workspace Marketplace badge for developers.

Use the badge to show your existing and potential customers where they can find your application, backed by Google Workspace’s industry-leading standards of quality, security, and compliance. For developers with products available globally, the badge is available in 29 languages including Arabic, Spanish, Vietnamese, and more.

The new Google Workspace Marketplace badge creation page for developers.

Refresh your Marketplace application listing and marketing assets

When you are ready to incorporate the new badge onto your website to feature your Marketplace app, we recommend that you also review the creatives and information used in your app’s listing in the Google Workspace Marketplace. You should also include well designed feature graphics in your listing and localize your featured graphics, screenshots, and description to improve conversions globally.

Stay on top of developer news

To make sure you’re aware of the latest Google Workspace Platform updates for developers, make sure you subscribe to our Google Workspace Developers Newsletter for monthly updates, follow @workspacedevs, and join in on the community conversation.

#IamaGDE: Joel Humberto Gómez

Banner with image of Joel Humberto Gómez, Google Developer Expert in Googe Maps Platform and Web Technologies

The Google Developers Experts program is a global network of highly experienced technology experts, influencers, and thought leaders who actively support developers, companies, and tech communities by speaking at events and publishing content.

Joel Humberto Gómez is an application developer at IBM, writing applications that improve the performance of IBM’s internal organization. While his job focuses on frontend development using React, he also has experience with web development using JavaScript. He has held many technical lead roles, in which he makes technical decisions and product delivery plans. Joel has a Computer Science degree from Universidad Veracruzana and has familiarity with databases, mobile development, web development, networks, and servers. He is a GDE in Web Technologies and Google Maps Platform.

“I’ve been involved in projects related to asset delivery and NFC in mobile development and projects about data visualization and automation processes in companies,” he says. “In 2022, I want to be more involved in the open source community.”

Joel uses Google Maps Platform to visualize data and explore data in projects focused on data visualization. In one project, he used the Maps JavaScript API. In another, he focused on trace routes and visualizing points to recollect and deliver packages. In a third project, he used the Place Autocomplete services and Directions API. Now, he is working on a non-profit project to show some places related with medical services.

Getting involved in the developer community

At university, one of Joel’s instructors organized events related to Linux, like Install Fest, with his students.

“With time, I became one of their students, and he motivated me to share knowledge with others and be brave and go beyond the university and my comfort zone,” Joel says. “I started to organize events and talks and got to know people in other communities.”

Eventually, Gómez became a GDG organizer.

“My chapter was GDG Monterrey,” he says. “We organized an Android Study Jam and some Google I/O Extended events.”

Gómez enjoyed sharing with his community and received encouragement from other GDEs to apply to the GDE program to share his knowledge more widely.

“I love to share with my community, but sometimes the knowledge just stays in your community,” he says. “Diego DeGranda, a GDE specializing in web technologies, encouraged me to apply and go beyond my community to share with communities outside of my country.”

As a GDE, Gómez has met other developers from around the world, with whom he talks about technology and shares experiences. Another benefit of being a GDE is the opportunity to learn from other GDEs and Google employees.

“In 2020, I had more activities, because location wasn’t a limitation anymore,” he said. “For speakers, virtual meetings are sometimes complicated, but we are adapting to this situation and using and creating tools to get and provide a better experience.”

Favorite Google Maps Platform features

Gómez’ favorite Google Maps Platform feature is the Local Context API.

“I think it’s a cool feature and has a lot of potential to create better applications,” he says. “I have some projects where Local Context helps me with some features, and I don’t need to develop by myself. In 2020, I gave some talks about the new features, wrote blog posts about them, and made videos about them.”

Future plans

Joel plans to create more content about Local Context, Plus Codes and other features in Google Maps Platform.

“I’m planning to start with a podcast about Maps and how to use it to create better applications,” he says. “I’ve been doing this in Spanish, so I need to create content in English, too.”

He has three professional goals: start to contribute to open source, create a little startup, and start projects that use Google Maps Platform.

Follow Joel on Twitter at @DezkaReid | Check out Joel’s projects on GitHub

For more information on Google Maps Platform, visit our website or learn more about our GDE program.

#BazelCon 2021 Wrap Up

Posted by Joe Hicks, Product Manager, Core Developer

The apps, platforms, and systems that the Bazel community builds with Bazel touch the lives of people around the world in ways we couldn’t have imagined. Through BazelCon, we aim to connect Bazel enthusiasts, the Bazel team, maintainers, contributors, users, and friends in an inclusive and welcoming environment. At BazelCon, the community demonstrates the global user impact of the community—with some quirky and carefully crafted talks, a readout on the State-of-Bazel, an upfront discussion on “Implicit Bias Mitigation,” and community sharing events that remind us that we are not alone in our efforts to build a better world, one line of code at a time.

At BazelCon, the community shared over 24 technical sessions with the 1400+ registrants, which you can watch here at your own pace. Make sure you check out:

Attendees were able to interact with the community and engage with the Bazel team through a series of “Birds of a Feather” (BoF) sessions and a live Q&A session. You can find all of the BoF presentations and notes here.

As announced, soon we will be releasing Bazel 5.0, the updated version of our next generation, multi-language, multi-platform build functionality that includes a new external dependency system, called bzlmod, for you to try out.

We’d like to thank everyone who helped make BazelCon a success: presenters, organizers, Google Developer Studios, contributors, and attendees. If you have any questions about BazelCon, you can reach out to [email protected].

We hope that you enjoyed #BazelCon and "Building Better with Bazel".

Personalize user journeys by Pushing Dynamic Shortcuts to Assistant

Posted by Jessica Dene Earley-Cha, Developer Relations Engineer

Like many other people who use their smartphone to make their lives easier, I’m way more likely to use an app that adapts to my behavior and is customized to fit me. Android apps already can support some personalization like the ability to long touch an app and a list of common user journeys are listed. When I long press my Audible app (an online audiobook and podcast service), it gives me a shortcut to the book I’m currently listening to; right now that is Daring Greatly by Brené Brown.

Now, imagine if these shortcuts could also be triggered by a voice command – and, when relevant to the user, show up in Google Assistant for easy use.

Wouldn't that be lovely?

Dynamic shortcuts on a mobile device

Well, now you can do that with App Actions by pushing dynamic shortcuts to the Google Assistant. Let’s go over what Shortcuts are, what happens when you push dynamic shortcuts to Google Assistant, and how to do just that!

Android Shortcuts

As an Android developer, you're most likely familiar with shortcuts. Shortcuts give your users the ability to jump into a specific part of your app. For cases where the destination in your app is based on individual user behavior, you can use a dynamic shortcut to jump to a specific thing the user was previously working with. For example, let’s consider a ToDo app, where users can create and maintain their ToDo lists. Since each item in the ToDo list is unique to each user, you can use Dynamic Shortcuts so that users' shortcuts can be based on their items on their ToDo list.

Below is a snippet of an Android dynamic shortcut for the fictional ToDo app.

val shortcut = = new ShortcutInfoCompat.Builder(context, task.id)
.setShortLabel(task.title)
.setLongLabel(task.title)
.setIcon(Icon.createWithResource(context, R.drawable.icon_active_task))
.setIntent(intent)
.build()

ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)

Dynamic Shortcuts for App Actions

If you're pushing dynamic shortcuts, it's a short hop to make those same shortcuts available for use by Google Assistant. You can do that by adding the Google Shortcuts Integration library and a few lines of code.

To extend a dynamic shortcut to Google Assistant through App Actions, two jetpack modules need to be added, and the dynamic shortcut needs to include .addCapabilityBinding.

val shortcut = = new ShortcutInfoCompat.Builder(context, task.id)
.setShortLabel(task.title)
.setLongLabel(task.title)
.setIcon(Icon.createWithResource(context, R.drawable.icon_active_task))
.addCapabilityBinding("actions.intent.GET_THING", "thing.name", listOf(task.title))
.setIntent(intent)
.build()

ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)

The addCapabilityBinding method binds the dynamic shortcut to a capability, which are declared ways a user can launch your app to the requested section. If you don’t already have App Actions implemented, you’ll need to add Capabilities to your shortcuts.xml file. Capabilities are an expression of the relevant feature of an app and contains a Built-In Intent (BII). BIIs are a language model for a voice command that Assistant already understands, and linking a BII to a shortcut allows Assistant to use the shortcut as the fulfillment for a matching command. In other words, by having capabilities, Assistant knows what to listen for, and how to launch the app.

In the example above, the addCapabilityBinding binds that dynamic shortcut to the actions.intent.GET_THING BII. When a user requests one of their items in their ToDo app, Assistant will process their request and it’ll trigger capability with the GET_THING BII that is listed in their shortcuts.xml.

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.GET_THING">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="YOUR_UNIQUE_APPLICATION_ID"
android:targetClass="YOUR_TARGET_CLASS">
<!-- Eg. name = the ToDo item -->
<parameter
android:name="thing.name"
android:key="name"/>
</intent>
</capability>
</shortcuts>

So in summary, the process to add dynamic shortcuts looks like this:

1. Configure App Actions by adding two jetpack modules ( ShortcutManagerCompat library and Google Shortcuts Integration Library). Then associate the shortcut with a Built-In Intent (BII) in your shortcuts.xml file. Finally push the dynamic shortcut from your app.

2. Two major things happen when you push your dynamic shortcuts to Assistant:

  1. Users can open dynamic shortcuts through Google Assistant, fast tracking users to your content
  2. During contextually relevant times, Assistant can proactively suggest your Android dynamic shortcuts to users, displaying it on Assistant enabled surfaces.

Not too bad. I don’t know about you, but I like to test out new functionality in a small app first. You're in luck! We recently launched a codelab that walks you through this whole process.

Dynamic Shortcuts Codelab

Looking for more resources to help improve your understanding of App Actions? We have a new learning pathway that walks you through the product, including the dynamic shortcuts that you just read about. Let us know what you think!

Thanks for reading! To share your thoughts or questions, join us on Reddit at r/GoogleAssistantDev.

Follow @ActionsOnGoogle on Twitter for more of our team's updates, and tweet using #AppActions to share what you’re working on. Can’t wait to see what you build!

Using Machine Learning for COVID-19 helpline with Krupal Modi #IamaGDE

Welcome to #IamaGDE - a series of spotlights presenting Google Developer Experts (GDEs) from across the globe. Discover their stories, passions, and highlights of their community work.

In college, Krupal Modi programmed a robot to catch a ball based on the ball’s color, and he enjoyed it enough that he became a developer. Now, he leads machine learning initiatives at Haptik, a conversational AI platform. He is a Google Developer Expert in Machine Learning and recently built the MyGov Corona Helpdesk module for the Indian government, to help Indians around the country schedule COVID-19 vaccinations. He lives in Gujarat, India.

Meet Krupal Modi, Google Developer Expert in Machine Learning.

Image shows Krupal Modi, machine learning Google Developer Expert

GDE Krupal Modi

The early days

Krupal Modi didn’t set out to become a developer, but when he did some projects in college related to pattern recognition, in which he built and programmed a robot to catch a ball based on the color of the ball, he got hooked.

“Then, it just happened organically that I liked those problems and became a developer,” he says.

Now, he has been a developer for ten years and is proficient in Natural Language Processing, Image Processing, and unstructured data analysis, using conventional machine learning and deep learning algorithms. He leads machine learning initiatives at Haptik, a conversational AI platform where developers can program virtual AI assistants and chat bots.

“I have been there almost seven years now,” he says. “I like that most of my time goes into solving some of the open problems in the state of natural language and design.”

Image shows Krupal on stage holding a microphone giving a presentation on NLP for Chatbots

Machine learning

Krupal has been doing machine learning for nine years, and says advances in Hardware, especially in the past eight years, have made machine learning much more accessible to a wider range of developers. “We’ve come very far with so many advances in hardware,” he says. “I was fortunate enough to have a great community around me.”

Krupal is currently invested in solving the open problems of language understanding.

“Today, nobody really prefers talking with a bot or a virtual assistant,” he says. “Given a choice, you’d rather communicate with a human at a particular business.”

Krupal aims to take language understanding to a new level, where people might prefer to talk to an AI, rather than a human. To do that, his team needs to get technology to the point where it becomes a preferred and faster mode of communication.

Ultimately, Krupal’s dream is to make sure whatever technology he builds can impact some of the fundamental aspects of human life, like health care, education, and digital well being.

“These are a few places where there’s a long way to go, and where the technology I work on could create an impact,” he says. “That would be a dream come true for me.”

Image shows Krupal on stage standing behind a podium. Behind him on the wall are the words Google Developers Machine Learning Bootcamp

COVID in India/Government Corona Help Desk Module

One way Krupal has aimed to use technology to impact health care is in the creation of the MyGov Corona Helpdesk module in India, a WhatsApp bot authorized by the Indian government to combat the spread of COVID-19 misinformation. Indian citizens could text MyGov Corona Helpdesk to get instant information on symptoms, how to seek treatment, and to schedule a vaccine.

“There was a lot of incorrect information on various channels related to the symptoms of COVID and treatments for COVID,” he explains. “Starting this initiative was to have a reliable source of information to combat the spread of misinformation.”

To date, the app has responded to over 100 million queries. Over ten million people have downloaded their vaccination certificates using the app, and over one million people have used it to book vaccination appointments.

Watch this video of how it works.

Image is a graphic for MyGov Corona HelpDesk on WhatsApp. The graphic displays the phone number to contact

Becoming a GDE

As a GDE, Krupal focuses on Machine Learning and appreciates the network of self-motivated, passionate developers.

“That’s one of the things I admire the most about the program—the passionate, motivated people in the community,” Krupal says. “If you’re surrounded by such a great community, you take on and learn a lot from them.”

Advice to other developers

“If you are passionate about a specific technology; you find satisfaction in writing about it and sharing it with other developers across the globe; and you look forward to learning from them, then GDE is the right program for you.”

AI Fest in Spain: Exploring the Potential of Artificial Intelligence in Careers, Communities, and Commerce

Posted by Alessandro Palmieri, Regional Lead for Spain Developer Communities

Google Developer Groups (GDGs) around the world are in a unique position to organize events on technology topics that community members are passionate about. That’s what happened in Spain in July 2021, where two GDG chapters decided to put on an event called AI Fest after noticing a lack of conferences dedicated exclusively to artificial intelligence. “Artificial intelligence is everywhere, although many people do not know it,” says Irene Ruiz Pozo, the organizer of GDG Murcia and GDG Cartagena. While AI has the potential to transform industries from retail to real estate with products like Dialogflow and Lending DocAI, “there are still companies falling behind,” she notes.

Image of Irene standing on stage at AI Fest Spain

Irene and her GDG team members recognized that creating a space for a diverse mix of people—students, academics, professional developers, and more—would not only enable them to share valuable knowledge about AI and its applications across sectors and industries, but it could also serve as a potential path for skill development and post-pandemic economic recovery in Spain. In addition, AI Fest would showcase GDGs in Spain as communities offering developer expertise, education, networking, and support.

Using the GDG network to find sponsors, partners, and speakers

The GDGs immediately got to work calling friends and contacts with experience in AI. “We started calling friends who were great developers and worked at various companies, we told them who we are, what we wanted to do, and what we wanted to achieve,” Irene says.

The GDG team found plenty of organizations eager to help: universities, nonprofit organizations, government entities, and private companies. The final roster included the Instituto de Fomento, the economic development agency of Spain’s Murcia region; the city council of Cartagena; Biyectiva Technology, which develops AI tools used in medicine, retail, and interactive marketing; and the Polytechnic University of Cartagena, where Irene founded and led the Google Developer Student Club in 2019 and 2020. Some partners also helped with swag and merchandising and even provided speakers. “The CEOs and different executives and developers of the companies who were speakers trusted this event from the beginning,” Irene says.

A celebration of AI and its potential

The event organizers lined up a total of 55 local and international speakers over the two-day event. Due to the ongoing COVID-10 pandemic, in-person attendance was limited to 50 people in a room at El Batel Auditorium and Conference Center in Cartagena, but sessions—speakers, roundtables, and workshops—were also live-streamed on YouTube on three channels to a thousand viewers.

Some of the most popular sessions included economics professor and technology lab co-founder Andrés Pedreño on "Competing in the era of Artificial Intelligence," a roundtable on women in technology; Intelequa software developer Elena Salcedo on "Happy plants with IoT''; and Google Developer Expert and technology firm CEO Juantomás García on "Vertex AI and AutoML: Democratizing access to AI." The sessions were also recorded for later viewing, and in less than a week after the event, there were more than 1500 views in room A, over 1100 in room B and nearly 350 views in the Workshops room.

The event made a huge impact on the developer community in Spain, setting an example of what tech-focused gatherings can look like in the COVID-19 era and how they can support more education, collaboration, and innovation across a wide range of organizations, ultimately accelerating the adoption of AI. Irene also notes that it has helped generate more interest in GDGs and GDSCs in Spain and their value as a place to learn, teach, and grow. “We’re really happy that new developers have joined the communities and entrepreneurs have decided to learn how to use Google technologies,” she says.

The effect on the GDG team was profound as well. “I have remembered why I started creating events--for people: to discover the magic of technology,” Irene says.

Taking AI Fest into the future—and more

Irene and her fellow GDG members are already planning for a second installment of AI Fest in early 2022, where they hope to be able to expect more in-person attendance. The team would also like to organize events focused on topics such as Android, Cloud, AR /VR, startups, the needs of local communities, and inclusion. Irene, who serves as a Women Techmakers Ambassador, is particularly interested in using her newly expanded network to host events that encourage women to choose technology and other STEM areas as a career.

Finally, Irene hopes that AI Fest will become an inspiration for GDGs around the world to showcase the potential of AI and other technologies. It’s a lot of work, she admits, but the result is well worth it. “My advice is to choose the area of technology that interests you the most, get organized, relax, and have a good team,” she advises.

Improve your development workflow with Interactive Canvas DevTools

Posted by Nick Felker, Developer Relations Engineer

Interactive Canvas helps developers build multimodal apps for games, storytelling, and educational experiences on smart displays like the Nest Hub and Nest Hub Max. Setting up an Interactive Canvas app involves building a web app, a conversational model, and a server-based fulfillment to respond to voice commands. All three of these components need to be built out to test your apps using the simulator in the Actions Console. This works for teams who are able to build all three at once… but it means that everything has to be hooked up, even if you just want to test out the web portion of your app. In many cases, the web app provides the bulk of the functionality of an Interactive Canvas app. We recently published Interactive Canvas DevTools, a new Chrome extension that helps unbundle this development process.

Interactive Canvas DevTool Extension

Using Interactive Canvas DevTools

After installing the Interactive Canvas DevTools from the Chrome Web Store, you’ll see a new Interactive Canvas tab when you Open Chrome DevTools.

When you load your web app in your browser, from a publicly hosted URL, localhost, or a remote device on your network, this tab lets you directly interface with the Interactive Canvas callbacks registered on the page to quickly and iteratively test your experience. Suggestion chips are created after every execution to let you replay the same command later.

To get started even faster, you can go to the Preferences tab and click the Import /SDK button. This will open a directory picker. You can select your project’s SDK folder. The extension will identify JSON payloads and TTS marks in your project and surface them as suggestion chips automatically.

JSON historical object changes

When the fields of the JSON object changed, you can view the changes in a colored diff.

Methods that send data to your webhook are instead rerouted to the History tab. This tab hosts a list of every text query and canvas state change in reverse chronological order. This allows you to view how changes in your web app would affect your conversational state. Each time the canvas state changes, you can see a visual representation of which fields changed.

Different levels of notice when using an operation unsupported in Interactive Canvas

Different levels of notice when using an operation unsupported in Interactive Canvas.

There are a number of other features that enhance the developer experience. For example, for browser methods that are not supported in Interactive Canvas, you can optionally log a warning or throw an error when you try to use them. This will make it easier to identify compatibility issues sooner and enforce these policies while debugging.

Nest Hub devices in the Device list

You are able to set the window to match the Nest Hub screen.

You can also add a header element onto your page that will help you optimize your layout for a smart display. Combined with the Nest Hub and Nest Hub Max as new device presets in Chrome DevTools, you are able to set your development environment to be an accurate representation of how your Action will look and behave on a physical device.

Interactive Canvas tab on a remote device

You can also send data to your remote device.

This extension also works if you have a physical device. If it is on the same network, you can connect to your smart display and open up the Interactive Canvas tab on that remote device. From there, you are able to send commands using the same interface.

You can install the extension now through the Chrome Web Store. We’re also happy to announce that the DevTools are Open Source! The source code for this extension has been published on GitHub, where you can find instructions on how to set up the project locally, and how to submit pull requests.

Thanks for reading! To share your thoughts or questions, join us on Reddit at /r/GoogleAssistantDev.

Follow @ActionsOnGoogle on Twitter for more of our team's updates, and tweet using #AoGDevs to share what you’re working on. Can’t wait to see what you build!

How a Student Leader Promotes Neurodiversity Awareness in Brazil and Beyond

Posted by Rodrigo Hirooka, Regional Lead for Brazil Developer Communities

Banner with image of João Victor Ipirajá, lead of the Google Student Developer Club at the Federal Institute of Science and Technology of Ceará

Perceiving that one is not like everyone else can be painful. Yet, the experience can also be illuminating. As a child in Brazil, João Victor Ipirajá, lead of the Google Student Developer Club (GDSC) at the Federal Institute of Science and Technology of Ceará (IFCE), knew he was different. He often felt overwhelmed by physical sensations and missed social cues. When he was eventually diagnosed as being on the autistic spectrum, he was actually relieved. Far from being a limitation, the realization gave him a new perspective on his intellectual strengths—such as his ability to perceive mathematical concepts in a highly visual way and his capacity for logical thinking and computer programming. “I was reborn to a full life shortly after I received this diagnosis,” he said in a video he made about his experiences as a person with ASD.

The World Health Organization estimates that 1 out of every 160 children has an autism spectrum disorder (ASD). Yet despite how relatively common ASD is, the wide diversity of the condition and misunderstandings about neurodiversity can still make it difficult to diagnose.

This newfound understanding of how his mind works helped guide him on his educational path as well as career direction. Instead of attending a traditional high school, which he felt would not play to his natural talents and strengths, João decided to study at IFCE, a technical college that also offered a high school program. There, he learned computer science and computer engineering, picking up new programming languages and honing his developer skills.

But most importantly, he felt he had “discovered his place.” His success at IFCE solving problems, using new tools, and working successfully with others soon outweighed his fears about meeting new people and not fitting in. The experience of finding a community convinced him of the need to encourage others to find theirs--and to help build them as well.

Joining GDSC and expanding awareness of neurodiversity

After high school, João decided to continue at IFCE for college to focus on computer engineering, where he learned new programming languages and tools like TensorFlow and Flutter. He also joined IFCE’s GDSC chapter, which further exposed him to new people and ideas. “It’s an honor to be part of this program, meeting people from all over the world and improving my speaking skills, especially in English,” he says. “For me, it’s something magical. I learned so much.”

At the same time, João was beginning to recognize the lack of understanding about neurodiversity in Brazil, even among technical audiences and employers in general. “Some people think we are crazy or we’re unable to do big projects,” he says. Even “good” stereotypes can be harmful--for example, many neurodiverse people have an ability to “hyperfocus” and work or study uninterrupted for hours on end. “People think it’s a superpower,” he says, but such extreme periods of concentration can also be unhealthy and lead to burnout.

Planting the seeds of change with GDSC events and projects

As the IFCE GDSC lead, João decided to concentrate his efforts on expanding awareness of neurodiversity, as well as other types of diversity—sexual, racial, religious, etc.—to help others find the sense of freedom and belonging he has experienced. “Many people don’t feel free to be whoever they want to be,” he says.

The chapter’s efforts include planning speaker sessions with diversity activists and specialists from the community, creating social media content in partnership with IFCE, creating workshops with other Brazilian GDSC chapters, and making diversity a priority when choosing core positions on the team.

He recently spoke at a DevFest event on the topic of “Understanding the autistic spectrum universe,” in which he explained the range of characteristics and abilities autistic people can display. He also wants to do more speaking events in Portuguese to break stereotypes about autism in Brazil specifically. “It’s just a student club, but we are trying to deconstruct stereotypes and prejudice that are so culturally strong in Brazil,” he says.

Cultivating understanding and acceptance in Brazil and beyond

Ultimately, João feels that providing more opportunities and platforms for diverse people will help others. As the community continues to come together, he might be able to help those who have that same sense of difference João remembers having as a child. João and others on his GDSC team especially hope that these efforts will advance a greater understanding around how to elevate and celebrate members of marginalized groups in his home country. However, his goals go beyond mere acceptance: he notes that people who feel more comfortable about who they are also feel more confident to fully participate in all aspects of society. People with diverse abilities and characteristics offer unique skills and perspectives that can also translate into advantages, especially among technical audiences and employers.

“It’s very important for people to have this opportunity to share their stories, to have these environments to make people understand,” he says. “For me, it’s very important, and I’m very honored.”

Build AI-powered customer conversations in Google Maps and Search with Google’s Business Messages

Posted by Sean Falconer, Staff Developer Relations Engineer Sean Falconer

Google’s Business Messages let customers message a business directly from Google Search, Google Maps, and any brand-managed property. Developers of Business Messages can leverage tools like Dialogflow to create AI-powered conversational experiences, where customers can chat with lifelike virtual agents that understand, interact, and talk in natural ways. Meanwhile the business can leverage real life agents when needed.

In this article, I’ll give a brief overview of Business Messages, how to get started developing with the platform, and then walkthrough how to set up an AI-powered conversion using the Bot-in-a-Box feature.

Let’s get started!

What is Google's Business Messages?

Business Messages is a mobile conversational channel that combines entry points from Google Maps, Search, and brand websites to create rich, asynchronous messaging experiences.

As shown in the example image below, I’ve searched “Bridgepoint Runners” and the results point me to a local Bridgepoint Runners store, which contains buttons to call, get directions, or go to their website. Since Bridgepoint Runners is enabled for Business Messages, I also see a Chat button, which when tapped opens a conversation with Bridgepoint Runners. In the conversation, the business can automatically answer my questions using AI-powered bots as well as live agents.

Example of Business Messages chat entry point for Bridgepoint Runners

In this simple example, Bridgepoint Runners represents a local business, but Business Messages also works for web-based businesses. Business Messages supports rich conversational features like suggested replies, suggested actions, rich cards, carousels, and images so that you can create complex and feature-rich conversational experiences to support a wide range of customer user journeys.

How do I get started?

To get started with Business Messages, you can register as a development partner on our developer website. You can also get up and running quickly by following our quickstart guide.

Once you’ve worked your way through the quickstart, you’ll have registered a Google Cloud Project and that project will have two APIs enabled, the Business Communications API and Business Messages API.

The Business Communications API is an API for creating and managing business experiences for the Business Messages platform while the Business Messages API is an API for sending and receiving messages to and from users on behalf of a business. Additionally, you’ll have access to the Business Communications Developer Console, which is a web-based tool for creating and managing business experiences on the Business Messages platform. It provides the same functionality as the Business Communications API, but is a faster and more convenient way to get started.

Additionally, after the quickstart, you’ll have configured a webhook and created your first Business Messages agent. An agent is a conversational representation of a brand. Agents include properties like the brand’s logo, the agent’s display name, the welcome message that greets a user, and more that define how the conversation will look and where the chat button will show up once launched.

The quickstart will have you deploy code to Google App Engine and the life of a message for your Echo Bot sample will look something like the image below.

Life of a Business Messages message

After creating an agent on behalf of a business, the chat button isn’t immediately available to Google Search and Maps users. All agents must go through a verification and launch process before the chat button will be shown for businesses in Search and Maps. You can see the full lifecycle from creation to launch of an agent here.

Even without launching an agent, you can test the message flow by using the test URLs from a mobile device that are autogenerated when you create the agent. The test URLs for an agent can be copied or sent to your email from within the Business Communications Developer Console and are also available as a property of the agent if you’re using the API.

When you navigate to the test URL, the conversation with your agent will automatically open. This mimics the experience that a user would see when tapping on a chat button for a launched Business Messages agent.

Agent information editor for a Business Messages agent

AI-powered conversation with Bot-in-a-Box

Business Messages’s Bot-in-a-Box makes getting started with conversational AI easy. Bot-in-a-Box takes advantage of Google AI tools like Dialogflow to easily convert an existing FAQ into an automated Business Messages solution. Within minutes, you could launch a lifelike virtual agent that provides relevant responses to the most common questions a business receives from customers.

FAQ-powered automated conversations

Additionally, you can use Dialogflow’s intents to create and support complex automated user journeys, like appointment booking, shopping, order lookup, and lead capture while taking advantage of Business Messages’s rich features.

Let’s take a look at an example.

Creating a Business Messages Helper bot

For this example, I’m going to create a helper bot that can answer questions about Business Messages. I’m going to create a new Business Messages agent using the Business Communications Developer Console, use the native Bot-in-a-Box feature to automate the conversation powered by an FAQ and Dialogflow, and finally add a custom intent to support an about this bot input.

To get started, since I’m already registered for Business Messages, I’m going to go to the Business Communications Developer Console and create a new agent.

Once the agent is created, I can select the agent to see additional details and access the various configuration options.

Create an agent dialog

Overview of a newly created Business Messages agent

Before setting up my Bot-in-a-Box experience, I want to make sure my agent is properly configured to greet new users. I click on Agent Information and from here I can set a welcome message and up to 5 conversation starters that help the user understand how to interact with the automated agent.

Agent information editor for a Business Messages agent

If I send myself the test URL and open the conversation on my phone, I’ll see that the Helper Bot has the greeting I configured and three conversation starters. Since I haven’t configured Bot-in-a-Box or a webhook to respond to user messages, if I send a message to the bot, nothing will happen.

First time experience with the Business Messages Helper Bot

Now that I have the basics setup, I’m going to click on the Integrations menu item in the developer console and configure Bot-in-a-Box via Dialogflow.

Setting up Bot-in-a-Box

The first step to setting up Bot-in-a-Box is to enable the Dialogflow integration. Currently, Bot-in-a-Box only supports the Dialogflow Essentials (ES) version of Dialogflow. However, you can integrate with Dialogflow Customer Experience (CX) by calling the CX APIs directly from a configured Business Messages webhook and programming the conversion to and from the Business Messages APIs.

From the Integrations section of the console, I click Enable integration. I am prompted to either create a new Dialogflow project or connect to an existing one. I’ve already created a Dialogflow project, so I choose to connect to an existing project and then I follow the prompts to set up the authentication between my Business Messages agent and the Dialogflow project.

Once the authentication is complete, I see an updated integration view like the one below. Next I want to Create a knowledge base and add an FAQ document. Behind the scenes, Dialogflow will use machine learning to process the document and recognize questions similar to what exists in the FAQ.

Enabling the Dialogflow integration

The document can be a URL pointing to an existing FAQ for a business or if you don’t have one, you can create an FAQ using Google Sheets, download it as a CSV, and then upload the CSV to initialize Bot-in-a-Box. For the purposes of this example, I created an FAQ as shown in the document below and uploaded it to Bot-in-a-Box.

Example FAQ sheet created for Business Messages

I downloaded this Sheet as a CSV and uploaded it as the initial data set for Bot-in-a-Box to train with.

Upload an FAQ as training data for Bot-in-a-Box

Now that I have Bot-in-a-Box configured, I go back to the conversation I started with the Business Messages Helper Bot on my phone and try asking a question. The Business Messages agent is able to respond immediately with a matching answer pulled from the FAQ document I created.

First time experience with the Business Messages Helper Bot

With Bot-in-a-Box’s FAQ support, within just a few minutes, without writing any code, I was able to create a sophisticated digital agent that can answer common questions about Business Messages.

Adding in a custom intent

As a final step, we are going to add a custom intent to the Dialogflow project we set up that can respond with rich content when someone taps on the “About this bot” suggestion or enters a similar question in the conversation.

From the Integrations section of the Business Communications Developer Console, I click on View agent, which takes me into Dialogflow ES. I click on the Intents menu item, create a new intent called “About this bot”, enter a few training phrases that represent expressions that should match this intent, and a text response.

Example of creating a custom payload to respond with a Business Messages rich card

Back in my conversation with the helper bot, I enter a message that should match this intent: “Who made this bot?”. Even though this phrase wasn’t explicitly part of the training phrases, my agent should match the intent and produce the response I configured.

Example text-based response from a custom intent

In this example, I’m responding with a simple text message, but what if I want to take advantage of Business Messages’s rich message support and respond with something like a rich card? I can do this by using Dialogflow’s custom payload option and use a valid Business Messages rich card payload in the response to create the card.

Example of creating a custom payload to respond with a Business Messages rich card

After creating the JSON structure for a card, I click Save and re-enter the chat on my phone asking “Who made this bot?” again and see the updated response.

Example rich card response form Helper Bot

Final thoughts

Google’s Business Messages is about enabling all businesses to welcome their customers and open a conversation, where and when they need it, as naturally as when a customer enters a store. Dialogflow is Google’s natural language understanding tool that processes user input, maps it to known intents, and responds with appropriate replies.

With Bot-in-a-Box, you can quickly combine the power of Business Messages that turns search queries into conversations, and Dialogflow to provide a turnkey solution to automate customer interactions with a business.

In this article, I showed how to use an FAQ to get up and running with Business Messages quickly and even create custom intents that can respond with rich responses to user inquiries, all without writing a single line of code. This no-code solution can easily be extended using Dialogflow’s fulfillment feature to pull in business information from a database or API, allowing you to support even more complex user journeys.

To learn more about Business Messages, check out our developer website and join our community. You can also check out the Business Messages Helper Bot powered by this technology available in our developer support section here.

I can’t wait to see what you build!