SlideShare a Scribd company logo
Taking control of your queries with GraphQL
Czech Dreamin ‘23
OUR SPONSORS
#CD2023 @CzechDreami
n
Principal Developer Advocate,
Salesforce
Twitter: @AlbaSFDC
Linkedin: linkedin.com/in/alba-rivas
Email: arivas@salesforce.com
Twitch: twitch.tv/albarivas
YouTube: youtube.com/c/AlbaRivasSalesforce
Alba Rivas
Forward-Looking Statement
Statement under the Private Securities Litigation Reform Act of 1995:
This presentation contains forward-looking statements about the company’s financial and operating results, which may include expected GAAP and non-GAAP financial and other operating and
non-operating results, including revenue, net income, diluted earnings per share, operating cash flow growth, operating margin improvement, expected revenue growth, expected current
remaining performance obligation growth, expected tax rates, the one-time accounting non-cash charge that was incurred in connection with the Salesforce.org combination; stock-based
compensation expenses, amortization of purchased intangibles, shares outstanding, market growth and sustainability goals. The achievement or success of the matters covered by such
forward-looking statements involves risks, uncertainties and assumptions. If any such risks or uncertainties materialize or if any of the assumptions prove incorrect, the company’s results could
differ materially from the results expressed or implied by the forward-looking statements we make.
The risks and uncertainties referred to above include -- but are not limited to -- risks associated with the effect of general economic and market conditions; the impact of geopolitical events; the
impact of foreign currency exchange rate and interest rate fluctuations on our results; our business strategy and our plan to build our business, including our strategy to be the leading provider of
enterprise cloud computing applications and platforms; the pace of change and innovation in enterprise cloud computing services; the seasonal nature of our sales cycles; the competitive nature
of the market in which we participate; our international expansion strategy; the demands on our personnel and infrastructure resulting from significant growth in our customer base and
operations, including as a result of acquisitions; our service performance and security, including the resources and costs required to avoid unanticipated downtime and prevent, detect and
remediate potential security breaches; the expenses associated with new data centers and third-party infrastructure providers; additional data center capacity; real estate and office facilities space;
our operating results and cash flows; new services and product features, including any efforts to expand our services beyond the CRM market; our strategy of acquiring or making investments in
complementary businesses, joint ventures, services, technologies and intellectual property rights; the performance and fair value of our investments in complementary businesses through our
strategic investment portfolio; our ability to realize the benefits from strategic partnerships, joint ventures and investments; the impact of future gains or losses from our strategic investment
portfolio, including gains or losses from overall market conditions that may affect the publicly traded companies within the company's strategic investment portfolio; our ability to execute our
business plans; our ability to successfully integrate acquired businesses and technologies, including delays related to the integration of Tableau due to regulatory review by the United Kingdom
Competition and Markets Authority; our ability to continue to grow unearned revenue and remaining performance obligation; our ability to protect our intellectual property rights; our ability to
develop our brands; our reliance on third-party hardware, software and platform providers; our dependency on the development and maintenance of the infrastructure of the Internet; the effect
of evolving domestic and foreign government regulations, including those related to the provision of services on the Internet, those related to accessing the Internet, and those addressing data
privacy, cross-border data transfers and import and export controls; the valuation of our deferred tax assets and the release of related valuation allowances; the potential availability of additional
tax assets in the future; the impact of new accounting pronouncements and tax laws; uncertainties affecting our ability to estimate our tax rate; the impact of expensing stock options and other
equity awards; the sufficiency of our capital resources; factors related to our outstanding debt, revolving credit facility, term loan and loan associated with 50 Fremont; compliance with our debt
covenants and lease obligations; current and potential litigation involving us; and the impact of climate change.
Further information on these and other factors that could affect the company’s financial results is included in the reports on Forms 10-K, 10-Q and 8-K and in other filings it makes with the
Securities and Exchange Commission from time to time. These documents are available on the SEC Filings section of the Investor Information section of the company’s website at
www.salesforce.com/investor.
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements, except as required by law.
What’s a GraphQL API?
Specification for API Server + Query Language - Facebook 2015
Single endpoint for all the resources, that can be aggregated
Requests only the necessary data
Schema-driven, enabling introspection
Widely adopted through a fast growing community
graphql.com
GraphQL API
REST API
How does GraphQL work?
Conference__c
Name
Attendees__c
Country__c
Talk__c
Name
Title__c
Abstract__c
Conference__c
Duration__c
Speakers__c
PARENT CHILD
GraphQL Data Shape
A GraphQL server represents data following a schema that has the form of a graph, that
can be traversed with:
● Queries
● Mutations - Winter ‘24
● Subscriptions - not in Salesforce yet
Basic Query
query allConferences {
uiapi {
query {
Conference__c {
edges {
node {
Id
Name {
value
}
Country__c {
value
}
}
}
}
}
}
}
Relay Cursor Connections spec
Basic Query
GraphQL API Clients
https://{MyDomainName}.my.salesforce.com/services/data/v{version}/graphql
Use an API client to test your queries:
● Altair - altairgraphql.dev (access to autogenerated documentation)
● Postman - tinyurl.com/salesforce-postman
● GraphiQL - github.com/graphql/graphiql
Need an API access token - get it through Salesforce CLI or connected app + OAuth flow
in production
Demo
github.com/albarivas/graphql-examples
REST Composite API User Interface API GraphQL API
Retrieve data from
multiple objects
In a single HTTP
request
Through multiple
HTTP requests
In a single HTTP
request
Retrieve data and
metadata
No Yes Yes
Modify data Yes Yes No
Send query
information
Endpoint + JSON Endpoint + JSON Fully in JSON
Support in LWC None Through multiple
REST wire adapters
Through one unique
GraphQL wire adapter
Documentation &
Dev Tooling
Not autogenerated Not autogenerated Autogenerated with
introspection
Community - - +
GraphQL vs Other Salesforce APIs
Where to use GraphQL from?
GraphQL Wire Adapter (Beta)
Enable native querability for LWCs
Query Salesforce data using SOQL-like
queries with rich predicates
Built-in shared caching by LDS
Data served from cache if not changed on
server and improved app performance
Data consistency guarantee
Data freshness and consistency across
components and wires
Basic Query
GraphQL Wire Adapter (Beta)
import { LightningElement, wire } from 'lwc';
import { gql, graphql } from 'lightning/uiGraphQLApi';
export default class ExampleGQL extends LightningElement {
@wire(graphql, {
query: gql`
query AccountInfo {
uiapi {
query {
Account(where: { Name: { like: "United%" } }) @category(name: "recordQuery") {
edges {
node {
Name @category(name: "StringValue") {
value
displayValue
}
}
}
}
}
}
}`
})
propertyOrFunction
}
Retrieving Data/Metadata in LWC
Apex LDS REST Wire
Adapters
GraphQL Wire
Adapter (Pilot)
Retrieve data /
metadata for multiple
objects
In a single HTTP
request, but hard
In multiple HTTP
requests
In a single HTTP
request
Indicate fields to
retrieve
Yes, but hard In some of them Yes
LDS Caching and
synchronization (and
offline capabilities)
No Yes Yes
Advanced features:
directives, fragments
etc.
No No Yes
Winter
‘23
GraphQL API
(GA)
GraphQL Wire
Adapter (Pilot)
Mutations Support
in API (Pilot)
GraphQL Wire Adapter
(GA)
GraphQL Wire
Adapter (Beta)
Aggregate query
support in API
Spring
‘23
Summer
‘23
Winter
‘24 &
Beyond
Roadmap
Resources
tinyurl.com/sf-graphql
Salesforce Developers
@SalesforceDevs
developer.salesforce.com
Connect with Us
Welcome!
www.salesforce.com/devcommunity
Thank you

More Related Content

What's hot (20)

PDF
Getting started with Salesforce security
Salesforce Admins
 
PDF
Salesforce CPQ, Orders, Contracts, Amendments and Renewals
Vinay Sail
 
PPTX
Salesforce Marketing Cloud Training | Salesforce Training For Beginners - Mar...
Edureka!
 
PDF
Salesforce Partner Program for ISVs Lifecycle Tutorial
Salesforce Partners
 
PPTX
Salesforce
BharatSirvi8
 
PDF
Configure, price and quote (CPQ) platform - Right information
Right Information
 
PDF
Webinar: Take Control of Your Org with Salesforce Optimizer
Salesforce Admins
 
PDF
GraphQL (la nouvelle API de référence de Salesforce ?!)
Paris Salesforce Developer Group
 
PDF
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
PPTX
Record sharing model in salesforce
Sunil kumar
 
PDF
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Salesforce Developers
 
PDF
Best Practices for Rolling Out New Functionality
Salesforce Admins
 
PDF
Salesforce Marketing Cloud overview demo
Adama Sidibé
 
PDF
Making connections matter: 2 use cases on graphs & analytics solutions
Neo4j
 
PPTX
How to Integrate WhatsApp with Salesforce.pptx
AwsQuality
 
PDF
Introduction to Apex Triggers
Salesforce Developers
 
PDF
Introduction to External Objects and the OData Connector
Salesforce Developers
 
PDF
Setting up Security in Your Salesforce Instance
Salesforce Developers
 
PPTX
Getting started with Splunk - Break out Session
Georg Knon
 
PPTX
Salesforce marketing cloud
ajay raz
 
Getting started with Salesforce security
Salesforce Admins
 
Salesforce CPQ, Orders, Contracts, Amendments and Renewals
Vinay Sail
 
Salesforce Marketing Cloud Training | Salesforce Training For Beginners - Mar...
Edureka!
 
Salesforce Partner Program for ISVs Lifecycle Tutorial
Salesforce Partners
 
Salesforce
BharatSirvi8
 
Configure, price and quote (CPQ) platform - Right information
Right Information
 
Webinar: Take Control of Your Org with Salesforce Optimizer
Salesforce Admins
 
GraphQL (la nouvelle API de référence de Salesforce ?!)
Paris Salesforce Developer Group
 
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
Record sharing model in salesforce
Sunil kumar
 
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Salesforce Developers
 
Best Practices for Rolling Out New Functionality
Salesforce Admins
 
Salesforce Marketing Cloud overview demo
Adama Sidibé
 
Making connections matter: 2 use cases on graphs & analytics solutions
Neo4j
 
How to Integrate WhatsApp with Salesforce.pptx
AwsQuality
 
Introduction to Apex Triggers
Salesforce Developers
 
Introduction to External Objects and the OData Connector
Salesforce Developers
 
Setting up Security in Your Salesforce Instance
Salesforce Developers
 
Getting started with Splunk - Break out Session
Georg Knon
 
Salesforce marketing cloud
ajay raz
 

Similar to Taking control of your queries with GraphQL, Alba Rivas (20)

PDF
Winter '22 highlights
AtaullahKhan31
 
PDF
Lightning Components 101: An Apex Developer's Guide
Adam Olshansky
 
PPTX
Summer 23 LWC Updates + Slack Apps.pptx
Kishore B T
 
PDF
Alba Rivas - Building Slack Applications with Bolt.js.pdf
MarkPawlikowski2
 
PPTX
Dreamforce 2019: "Using Quip for Better Documentation of your Salesforce Org"
Prag Ravichandran Kamalaveni (he/him)
 
PPTX
Demystify Metadata Relationships with the Dependency API
Developer Force
 
PPTX
Deep dive into salesforce connected app part 4
Mohith Shrivastava
 
PDF
TDX Global Gathering - Wellington UG
Stephan Chandler-Garcia
 
PDF
Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...
Vivek Chawla
 
PDF
Austin Developers - New Lighting Web Component Features & #TDX22 Updates
NadinaLisbon1
 
PPTX
Stamford developer group Experience Cloud
Amol Dixit
 
PDF
Jaipur MuleSoft Meetup No. 3
Lalit Panwar
 
PDF
Local development with Open Source Base Components
Salesforce Developers
 
PPTX
Introduction to Salesforce Pub-Sub APIs/Architecture
Amol Dixit
 
PPTX
Eda gas andelectricity_meetup-adelaide_pov
Nicholas Bowman
 
PDF
Winter 21 Developer Highlights for Salesforce
Peter Chittum
 
PPTX
London Salesforce Developers TDX 20 Global Gathering
Keir Bowden
 
PDF
WT19: Platform Events Are for Admins Too!
Salesforce Admins
 
PDF
TrailheadX Presentation - 2020 Cluj
Arpad Komaromi
 
PDF
Intro to Tableau - SL Dev Group.pdf
Salesforce.com Developer Community
 
Winter '22 highlights
AtaullahKhan31
 
Lightning Components 101: An Apex Developer's Guide
Adam Olshansky
 
Summer 23 LWC Updates + Slack Apps.pptx
Kishore B T
 
Alba Rivas - Building Slack Applications with Bolt.js.pdf
MarkPawlikowski2
 
Dreamforce 2019: "Using Quip for Better Documentation of your Salesforce Org"
Prag Ravichandran Kamalaveni (he/him)
 
Demystify Metadata Relationships with the Dependency API
Developer Force
 
Deep dive into salesforce connected app part 4
Mohith Shrivastava
 
TDX Global Gathering - Wellington UG
Stephan Chandler-Garcia
 
Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...
Vivek Chawla
 
Austin Developers - New Lighting Web Component Features & #TDX22 Updates
NadinaLisbon1
 
Stamford developer group Experience Cloud
Amol Dixit
 
Jaipur MuleSoft Meetup No. 3
Lalit Panwar
 
Local development with Open Source Base Components
Salesforce Developers
 
Introduction to Salesforce Pub-Sub APIs/Architecture
Amol Dixit
 
Eda gas andelectricity_meetup-adelaide_pov
Nicholas Bowman
 
Winter 21 Developer Highlights for Salesforce
Peter Chittum
 
London Salesforce Developers TDX 20 Global Gathering
Keir Bowden
 
WT19: Platform Events Are for Admins Too!
Salesforce Admins
 
TrailheadX Presentation - 2020 Cluj
Arpad Komaromi
 
Intro to Tableau - SL Dev Group.pdf
Salesforce.com Developer Community
 
Ad

More from CzechDreamin (20)

PPTX
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
CzechDreamin
 
PPTX
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
CzechDreamin
 
PPTX
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
CzechDreamin
 
PPTX
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
CzechDreamin
 
PDF
Powerful Start- the Key to Project Success, Barbara Laskowska
CzechDreamin
 
PPTX
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
CzechDreamin
 
PPTX
AI revolution and Salesforce, Jiří Karpíšek
CzechDreamin
 
PPTX
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
CzechDreamin
 
PPTX
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
CzechDreamin
 
PPTX
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
CzechDreamin
 
PPTX
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
CzechDreamin
 
PPTX
How we should include Devops Center to get happy developers?, David Fernandez...
CzechDreamin
 
PPTX
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
CzechDreamin
 
PPTX
Architecting for Analytics, Aaron Crear
CzechDreamin
 
PPTX
Ape to API, Filip Dousek
CzechDreamin
 
PPTX
Push Upgrades, The last mile of Salesforce DevOps, Manuel Moya
CzechDreamin
 
PPTX
How do you know you’re solving the right problem? Design Thinking for Salesfo...
CzechDreamin
 
PPTX
ChatGPT … How Does it Flow?, Mark Jones
CzechDreamin
 
PPTX
Real-time communication with Account Engagement (Pardot). Marketers meet deve...
CzechDreamin
 
PPTX
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
CzechDreamin
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
CzechDreamin
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
CzechDreamin
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
CzechDreamin
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
CzechDreamin
 
Powerful Start- the Key to Project Success, Barbara Laskowska
CzechDreamin
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
CzechDreamin
 
AI revolution and Salesforce, Jiří Karpíšek
CzechDreamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
CzechDreamin
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
CzechDreamin
 
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
CzechDreamin
 
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
CzechDreamin
 
How we should include Devops Center to get happy developers?, David Fernandez...
CzechDreamin
 
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
CzechDreamin
 
Architecting for Analytics, Aaron Crear
CzechDreamin
 
Ape to API, Filip Dousek
CzechDreamin
 
Push Upgrades, The last mile of Salesforce DevOps, Manuel Moya
CzechDreamin
 
How do you know you’re solving the right problem? Design Thinking for Salesfo...
CzechDreamin
 
ChatGPT … How Does it Flow?, Mark Jones
CzechDreamin
 
Real-time communication with Account Engagement (Pardot). Marketers meet deve...
CzechDreamin
 
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
CzechDreamin
 
Ad

Recently uploaded (20)

PDF
Home Cleaning App Development Services.pdf
V3cube
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Essential Content-centric Plugins for your Website
Laura Byrne
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
NASA A Researcher’s Guide to International Space Station : Earth Observations
Dr. PANKAJ DHUSSA
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Next Generation AI: Anticipatory Intelligence, Forecasting Inflection Points ...
dleka294658677
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Bitkom eIDAS Summit | European Business Wallet: Use Cases, Macroeconomics, an...
Carsten Stoecker
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
PDF
Survival Models: Proper Scoring Rule and Stochastic Optimization with Competi...
Paris Women in Machine Learning and Data Science
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
[GDGoC FPTU] Spring 2025 Summary Slidess
minhtrietgect
 
Home Cleaning App Development Services.pdf
V3cube
 
Digital Circuits, important subject in CS
contactparinay1
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Essential Content-centric Plugins for your Website
Laura Byrne
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
NASA A Researcher’s Guide to International Space Station : Earth Observations
Dr. PANKAJ DHUSSA
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Next Generation AI: Anticipatory Intelligence, Forecasting Inflection Points ...
dleka294658677
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Bitkom eIDAS Summit | European Business Wallet: Use Cases, Macroeconomics, an...
Carsten Stoecker
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
Survival Models: Proper Scoring Rule and Stochastic Optimization with Competi...
Paris Women in Machine Learning and Data Science
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
[GDGoC FPTU] Spring 2025 Summary Slidess
minhtrietgect
 

Taking control of your queries with GraphQL, Alba Rivas

  • 1. Taking control of your queries with GraphQL Czech Dreamin ‘23
  • 3. #CD2023 @CzechDreami n Principal Developer Advocate, Salesforce Twitter: @AlbaSFDC Linkedin: linkedin.com/in/alba-rivas Email: [email protected] Twitch: twitch.tv/albarivas YouTube: youtube.com/c/AlbaRivasSalesforce Alba Rivas
  • 4. Forward-Looking Statement Statement under the Private Securities Litigation Reform Act of 1995: This presentation contains forward-looking statements about the company’s financial and operating results, which may include expected GAAP and non-GAAP financial and other operating and non-operating results, including revenue, net income, diluted earnings per share, operating cash flow growth, operating margin improvement, expected revenue growth, expected current remaining performance obligation growth, expected tax rates, the one-time accounting non-cash charge that was incurred in connection with the Salesforce.org combination; stock-based compensation expenses, amortization of purchased intangibles, shares outstanding, market growth and sustainability goals. The achievement or success of the matters covered by such forward-looking statements involves risks, uncertainties and assumptions. If any such risks or uncertainties materialize or if any of the assumptions prove incorrect, the company’s results could differ materially from the results expressed or implied by the forward-looking statements we make. The risks and uncertainties referred to above include -- but are not limited to -- risks associated with the effect of general economic and market conditions; the impact of geopolitical events; the impact of foreign currency exchange rate and interest rate fluctuations on our results; our business strategy and our plan to build our business, including our strategy to be the leading provider of enterprise cloud computing applications and platforms; the pace of change and innovation in enterprise cloud computing services; the seasonal nature of our sales cycles; the competitive nature of the market in which we participate; our international expansion strategy; the demands on our personnel and infrastructure resulting from significant growth in our customer base and operations, including as a result of acquisitions; our service performance and security, including the resources and costs required to avoid unanticipated downtime and prevent, detect and remediate potential security breaches; the expenses associated with new data centers and third-party infrastructure providers; additional data center capacity; real estate and office facilities space; our operating results and cash flows; new services and product features, including any efforts to expand our services beyond the CRM market; our strategy of acquiring or making investments in complementary businesses, joint ventures, services, technologies and intellectual property rights; the performance and fair value of our investments in complementary businesses through our strategic investment portfolio; our ability to realize the benefits from strategic partnerships, joint ventures and investments; the impact of future gains or losses from our strategic investment portfolio, including gains or losses from overall market conditions that may affect the publicly traded companies within the company's strategic investment portfolio; our ability to execute our business plans; our ability to successfully integrate acquired businesses and technologies, including delays related to the integration of Tableau due to regulatory review by the United Kingdom Competition and Markets Authority; our ability to continue to grow unearned revenue and remaining performance obligation; our ability to protect our intellectual property rights; our ability to develop our brands; our reliance on third-party hardware, software and platform providers; our dependency on the development and maintenance of the infrastructure of the Internet; the effect of evolving domestic and foreign government regulations, including those related to the provision of services on the Internet, those related to accessing the Internet, and those addressing data privacy, cross-border data transfers and import and export controls; the valuation of our deferred tax assets and the release of related valuation allowances; the potential availability of additional tax assets in the future; the impact of new accounting pronouncements and tax laws; uncertainties affecting our ability to estimate our tax rate; the impact of expensing stock options and other equity awards; the sufficiency of our capital resources; factors related to our outstanding debt, revolving credit facility, term loan and loan associated with 50 Fremont; compliance with our debt covenants and lease obligations; current and potential litigation involving us; and the impact of climate change. Further information on these and other factors that could affect the company’s financial results is included in the reports on Forms 10-K, 10-Q and 8-K and in other filings it makes with the Securities and Exchange Commission from time to time. These documents are available on the SEC Filings section of the Investor Information section of the company’s website at www.salesforce.com/investor. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements, except as required by law.
  • 5. What’s a GraphQL API? Specification for API Server + Query Language - Facebook 2015 Single endpoint for all the resources, that can be aggregated Requests only the necessary data Schema-driven, enabling introspection Widely adopted through a fast growing community graphql.com
  • 6. GraphQL API REST API How does GraphQL work?
  • 7. Conference__c Name Attendees__c Country__c Talk__c Name Title__c Abstract__c Conference__c Duration__c Speakers__c PARENT CHILD GraphQL Data Shape A GraphQL server represents data following a schema that has the form of a graph, that can be traversed with: ● Queries ● Mutations - Winter ‘24 ● Subscriptions - not in Salesforce yet
  • 8. Basic Query query allConferences { uiapi { query { Conference__c { edges { node { Id Name { value } Country__c { value } } } } } } } Relay Cursor Connections spec Basic Query
  • 9. GraphQL API Clients https://{MyDomainName}.my.salesforce.com/services/data/v{version}/graphql Use an API client to test your queries: ● Altair - altairgraphql.dev (access to autogenerated documentation) ● Postman - tinyurl.com/salesforce-postman ● GraphiQL - github.com/graphql/graphiql Need an API access token - get it through Salesforce CLI or connected app + OAuth flow in production
  • 11. REST Composite API User Interface API GraphQL API Retrieve data from multiple objects In a single HTTP request Through multiple HTTP requests In a single HTTP request Retrieve data and metadata No Yes Yes Modify data Yes Yes No Send query information Endpoint + JSON Endpoint + JSON Fully in JSON Support in LWC None Through multiple REST wire adapters Through one unique GraphQL wire adapter Documentation & Dev Tooling Not autogenerated Not autogenerated Autogenerated with introspection Community - - + GraphQL vs Other Salesforce APIs
  • 12. Where to use GraphQL from?
  • 13. GraphQL Wire Adapter (Beta) Enable native querability for LWCs Query Salesforce data using SOQL-like queries with rich predicates Built-in shared caching by LDS Data served from cache if not changed on server and improved app performance Data consistency guarantee Data freshness and consistency across components and wires
  • 14. Basic Query GraphQL Wire Adapter (Beta) import { LightningElement, wire } from 'lwc'; import { gql, graphql } from 'lightning/uiGraphQLApi'; export default class ExampleGQL extends LightningElement { @wire(graphql, { query: gql` query AccountInfo { uiapi { query { Account(where: { Name: { like: "United%" } }) @category(name: "recordQuery") { edges { node { Name @category(name: "StringValue") { value displayValue } } } } } } }` }) propertyOrFunction }
  • 15. Retrieving Data/Metadata in LWC Apex LDS REST Wire Adapters GraphQL Wire Adapter (Pilot) Retrieve data / metadata for multiple objects In a single HTTP request, but hard In multiple HTTP requests In a single HTTP request Indicate fields to retrieve Yes, but hard In some of them Yes LDS Caching and synchronization (and offline capabilities) No Yes Yes Advanced features: directives, fragments etc. No No Yes
  • 16. Winter ‘23 GraphQL API (GA) GraphQL Wire Adapter (Pilot) Mutations Support in API (Pilot) GraphQL Wire Adapter (GA) GraphQL Wire Adapter (Beta) Aggregate query support in API Spring ‘23 Summer ‘23 Winter ‘24 & Beyond Roadmap