SlideShare a Scribd company logo
Integrating Force.com with Heroku
Force.com Developer Meetup – Washington, DC August 8 2012




Pat Patterson
Principal Developer Evangelist
@metadaddy




                        Follow us @forcedotcom
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may
contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such
uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc.
could differ materially from the results expressed or implied by the forward-looking statements we make. All
statements other than statements of historical fact could be deemed forward-looking, including any
projections of subscriber growth, earnings, revenues, or other financial items and any statements regarding
strategies or plans of management for future operations, statements of belief, any statements concerning
new, planned, or upgraded services or technology developments and customer contracts or use of our
services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with
developing and delivering new functionality for our service, our new business model, our past operating
losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web
hosting, breach of our security measures, risks associated with possible mergers and acquisitions, the
immature market in which we operate, our relatively limited operating history, our ability to expand, retain,
and motivate our employees and manage our growth, new releases of our service and successful customer
deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger
enterprise customers. Further information on potential factors that could affect the financial results of
salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year ended
January 31, 2012. This document and others are available on the SEC Filings section of the Investor
Information section of our Web site.

Any unreleased services or features referenced in this or other press releases or public statements are not
currently available and may not be delivered on time or at all. Customers who purchase our services should
make the purchase decisions based upon features that are currently available. Salesforce.com, inc.
assumes no obligation and does not intend to update these forward-looking statements.
Agenda
                                        NEW!!!



 Force.com app ->Web Service

 External app ->Force.com


                                                 NEW!!!


 HerokuPostgres Data Clips




               Follow us @forcedotcom
Calling Web Services from Force.com




                    REST/SOAP Request




                   REST/SOAP Response

   Force.com app                            External System




                   Follow us @forcedotcom
Interactive Context

  For example, user presses custom button
    – Call web service synchronously from controller
      // Create jsonString, then...

      HttpRequestreq = new HttpRequest();

      req.setMethod('POST');
      req.setEndpoint('https://webservice.herokuapp.com/order');
      req.setHeader('Content-Type', 'application/json');
      req.setBody(jsonString);

      Http http = new Http();
      res = http.send(req);

      // Now parse response and update record(s)


                          Follow us @forcedotcom
Trigger Context

  Synchronous callouts are not allowed!
    – Call web service asynchronously from trigger
      // In Apex Trigger, build list of ids, then...

      Integration.postOrder(invoiceIds);

      // Define asynchronous method in Apex Class
      @future (callout=true)
      public static void postOrder(List<Id>invoiceIds) {
          // ...
      }




                          Follow us @forcedotcom
Calling Force.com from External Apps




                    REST/SOAP Request




                   REST/SOAP Response

   Force.com app                            External System




                   Follow us @forcedotcom
Force.com REST API

  Record-oriented REST API
    – Invoke HTTP POST/GET/PATCH/DELETE on URLs
    – https://na9.salesforce.com/services/data/v25.0/
      sobjects/Invoice_Statement__c/a01E0000000BsAz
  Query and Search Endpoints
    – .../v25.0/query?q=SELECT+Invoice_Value__c+FROM+
      Invoice_Statement__c
  Authenticate via OAuth
    – Interactive or username/password




                         Follow us @forcedotcom
Accessible From Any Environment

 $ curl -H 'X-PrettyPrint: 1’ -H 'Authorization: Bearer XXX'
    https://na1.salesforce.com/services/data/v25.0/sobjects/Invoic
    e_Statement__c/a015000000W5a5YAAR
 {
     "attributes" : {
          "type" : "Invoice_Statement__c",
      "url" :
     "/services/data/v25.0/sobjects/Invoice_Statement__c/a015000000
     W5a5YAAR"
     },
     "Id" : "a015000000W5a5YAAR",
     "OwnerId" : "00550000001fg5OAAQ",
 …



                              Follow us @forcedotcom
Force.com REST API Connector

  Lightweight Java library
    – https://github.com/jesperfj/force-rest-api
  Includes OAuth implementations
  Define model classes for standard/custom object
  Easy CRUD
    // Set up api object from config, session, then...
    Account a = new Account();
    a.setName("Test account");
    String id = api.createSObject("account", a);


    a= api.getSObject("Account",id).as(Account.class);

                            Follow us @forcedotcom
Apex REST Methods

  Insert/update many records in a single transaction
    @RestResource(urlMapping='/Invoice/*')
    global class QuickInvoiceService {


      @HttpPost
      global static String
      createInvoiceAndItem(String description,
      StringmerchId, Integer units) {
          // Create invoice and line item records
          // Either both are created or neither
      }


                       Follow us @forcedotcom
HerokuPostgres Data Clips                           NEW!!!


  HTML, JSON, CSV, YAML representations of a SQL
   Query
   SELECT
     "characters"."name" AS "character_name",
   SUM(length("paragraphs"."plain_text")) as "letter_count",
     COUNT(*) as "paragraph_count",
   SUM(length("paragraphs"."plain_text"))/COUNT(*) as
     "drone_factor"
   FROM "paragraphs”
   INNER JOIN "characters" ON "paragraphs"."character_id" =
     "characters"."id”


   https://postgres.heroku.com/dataclips/ljfeywbwtxbcabardaxvcstjyodi



                           Follow us @forcedotcom
Integrating Data Clips with Force.com

  Just another REST call to retrieve JSON data…
  Define Apex Class to model data
    public class DroneFactor {


        public String character_name;
        public String letter_count;
        public String paragraph_count;
        public String drone_factor;


        public static DroneFactorparse(Stringjson) {
          return (DroneFactor) System.JSON.deserialize(json,
        DroneFactor.class);
    }
    }


                             Follow us @forcedotcom
Integrating Data Clips with Force.com

  Write client to retrieve JSON
    public class DroneFactorClient {
    public static List<DroneFactor> get() {
    HttpRequestreq = new HttpRequest();
    req.setEndpoint('https://postgres.heroku.com/dataclips/ljfeywbwtxbcabar
       daxvcstjyodi.json');
    req.setMethod('GET');


    Http http = new Http();
    HTTPResponse res = http.send(req);
    System.debug('Data Clip response code: '+res.getStatusCode()+'. Status:
       '+res.getStatus());
    return (List<DroneFactor>)System.JSON.deserialize(res.getBody(),
       List<DroneFactor>.class);
    }
    }
                              Follow us @forcedotcom
Resources

 Force.com Integration Workbook
  http://wiki.developerforce.com/page/Force.com_workbook#Force.com_Integration_
  Workbook


 Force.comREST API Connector
  https://github.com/jesperfj/force-rest-api


 Integrating Force.com and HerokuPostgres with Data
  Clips
  http://blogs.developerforce.com/developer-relations/2012/08/integrating-
  force-com-and-heroku-postgres-with-data-clips.html




                                 Follow us @forcedotcom
Q&A

@metadaddy
Follow us @forcedotcom

More Related Content

PPTX
Web Apps for Salesforce with Heroku Connect
PDF
Tour of Heroku + Salesforce Integration Methods
PDF
Introduction to Building E-Commerce Solutions on Heroku and Salesforce
PPTX
Build Consumer-Facing Apps with Heroku Connect
PDF
Examples of Using Heroku With Force.com to Build Apps
PPTX
Exploring the Salesforce REST API
PDF
Building a RESTful API on Heroku for Your Force.com App
PDF
Integration at Scale: Enterprise Patterns with Heroku Connect
Web Apps for Salesforce with Heroku Connect
Tour of Heroku + Salesforce Integration Methods
Introduction to Building E-Commerce Solutions on Heroku and Salesforce
Build Consumer-Facing Apps with Heroku Connect
Examples of Using Heroku With Force.com to Build Apps
Exploring the Salesforce REST API
Building a RESTful API on Heroku for Your Force.com App
Integration at Scale: Enterprise Patterns with Heroku Connect

What's hot (20)

PPTX
Dreamforce 2013 - Heroku 5 use cases
PDF
Two-Way Integration with Writable External Objects
PDF
Let's Learn About Heroku and How to Integrate with Salesforce
PPTX
Developing Offline Mobile Apps with Salesforce Mobile SDK SmartStore
PDF
Unite Customer-Facing Apps with a Salesforce Backend: Heroku Connect in Practice
PPTX
Reinvent your App Dev Lifecycle with Continuous Delivery on Heroku
PPTX
Building BOTS on App Cloud
PDF
Lightning Connect Custom Adapters: Connecting Anything with Salesforce
PPT
Developing Offline Mobile Apps with the Salesforce.com Mobile SDK SmartStore,...
PPTX
Coding Apps in the Cloud with Force.com - Part 2
PPT
Build your API with Force.com and Heroku
PPTX
Salesforce integration with heroku apps made easy
PDF
Use Custom Metadata Types for Easy ALM & Compliance for Your Custom Apps
PPTX
Forcelandia 2015
PPTX
Integrating with salesforce
PDF
Unlock the Value of your Salesforce Data at Scale with Heroku Connect
PDF
Introduction to HEROKU Salesforce1 Platform DevDay
PDF
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
PDF
Salesforce API Series: Integrating Applications with Force.com Webinar
PPT
Salesforce Integration
Dreamforce 2013 - Heroku 5 use cases
Two-Way Integration with Writable External Objects
Let's Learn About Heroku and How to Integrate with Salesforce
Developing Offline Mobile Apps with Salesforce Mobile SDK SmartStore
Unite Customer-Facing Apps with a Salesforce Backend: Heroku Connect in Practice
Reinvent your App Dev Lifecycle with Continuous Delivery on Heroku
Building BOTS on App Cloud
Lightning Connect Custom Adapters: Connecting Anything with Salesforce
Developing Offline Mobile Apps with the Salesforce.com Mobile SDK SmartStore,...
Coding Apps in the Cloud with Force.com - Part 2
Build your API with Force.com and Heroku
Salesforce integration with heroku apps made easy
Use Custom Metadata Types for Easy ALM & Compliance for Your Custom Apps
Forcelandia 2015
Integrating with salesforce
Unlock the Value of your Salesforce Data at Scale with Heroku Connect
Introduction to HEROKU Salesforce1 Platform DevDay
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Salesforce API Series: Integrating Applications with Force.com Webinar
Salesforce Integration
Ad

Viewers also liked (6)

PPTX
Heroku Connect: The New Way to Build Connected Customer Applications
PPTX
원격지 개발사업 관리가이드 발표20121020
PPTX
Heroku - developer playground
PDF
Heroku 101 py con 2015 - David Gouldin
PDF
Webservices in SalesForce (part 1)
PDF
Dreamforce 2016 Investor Day
Heroku Connect: The New Way to Build Connected Customer Applications
원격지 개발사업 관리가이드 발표20121020
Heroku - developer playground
Heroku 101 py con 2015 - David Gouldin
Webservices in SalesForce (part 1)
Dreamforce 2016 Investor Day
Ad

Similar to Integrating Force.com with Heroku (20)

PDF
Painless Mobile App Development Webinar
PPT
Salesforce REST API
PPTX
Introducing the Salesforce platform
PPTX
Connect Your Clouds with Force.com
PPT
How Force.com developers do more in less time
PPTX
SFDC REST API
PPT
Developers guide to the Salesforce1 Platform
PPTX
Create a Force.com-Powered Facebook App on Heroku
PDF
Spring '13 Release Developer Preview Webinar
PPTX
New Powerful API Enhancements for Summer '15
PDF
Winter 13 Release Developer Preview Webinar
PPTX
Apex REST
PDF
Boxcars and Cabooses: When One More XHR Is Too Much
PDF
Developer Tour on the Salesforce1 Platform
PDF
Mbf2 salesforce webinar 2
PDF
[MBF2] Webinar plate-forme Salesforce #1
PDF
[MBF2] Webinar plate-forme Salesforce #1
PDF
Introduction to Force.com Webinar
PDF
Intro to Force.com Webinar presentation
PDF
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...
Painless Mobile App Development Webinar
Salesforce REST API
Introducing the Salesforce platform
Connect Your Clouds with Force.com
How Force.com developers do more in less time
SFDC REST API
Developers guide to the Salesforce1 Platform
Create a Force.com-Powered Facebook App on Heroku
Spring '13 Release Developer Preview Webinar
New Powerful API Enhancements for Summer '15
Winter 13 Release Developer Preview Webinar
Apex REST
Boxcars and Cabooses: When One More XHR Is Too Much
Developer Tour on the Salesforce1 Platform
Mbf2 salesforce webinar 2
[MBF2] Webinar plate-forme Salesforce #1
[MBF2] Webinar plate-forme Salesforce #1
Introduction to Force.com Webinar
Intro to Force.com Webinar presentation
Boxcars and Cabooses: When one more XHR is too much - Peter Chittum - Codemot...

More from Pat Patterson (20)

PPTX
DevOps from the Provider Perspective
PPTX
How Imprivata Combines External Data Sources for Business Insights
PPTX
Data Integration with Apache Kafka: What, Why, How
PPTX
Project Ouroboros: Using StreamSets Data Collector to Help Manage the StreamS...
PPTX
Dealing with Drift: Building an Enterprise Data Lake
PPTX
Integrating with Einstein Analytics
PPTX
Efficient Schemas in Motion with Kafka and Schema Registry
PPTX
Dealing With Drift - Building an Enterprise Data Lake
PPTX
Building Data Pipelines with Spark and StreamSets
PPTX
Adaptive Data Cleansing with StreamSets and Cassandra
PDF
Building Custom Big Data Integrations
PPTX
Ingest and Stream Processing - What will you choose?
PPTX
Open Source Big Data Ingestion - Without the Heartburn!
PPTX
Ingest and Stream Processing - What will you choose?
PPTX
All Aboard the Boxcar! Going Beyond the Basics of REST
PPTX
Provisioning IDaaS - Using SCIM to Enable Cloud Identity
PPTX
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
PPTX
Enterprise IoT: Data in Context
PPTX
OData: A Standard API for Data Access
PPTX
API-Driven Relationships: Building The Trans-Internet Express of the Future
DevOps from the Provider Perspective
How Imprivata Combines External Data Sources for Business Insights
Data Integration with Apache Kafka: What, Why, How
Project Ouroboros: Using StreamSets Data Collector to Help Manage the StreamS...
Dealing with Drift: Building an Enterprise Data Lake
Integrating with Einstein Analytics
Efficient Schemas in Motion with Kafka and Schema Registry
Dealing With Drift - Building an Enterprise Data Lake
Building Data Pipelines with Spark and StreamSets
Adaptive Data Cleansing with StreamSets and Cassandra
Building Custom Big Data Integrations
Ingest and Stream Processing - What will you choose?
Open Source Big Data Ingestion - Without the Heartburn!
Ingest and Stream Processing - What will you choose?
All Aboard the Boxcar! Going Beyond the Basics of REST
Provisioning IDaaS - Using SCIM to Enable Cloud Identity
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
Enterprise IoT: Data in Context
OData: A Standard API for Data Access
API-Driven Relationships: Building The Trans-Internet Express of the Future

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Modernizing your data center with Dell and AMD
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Big Data Technologies - Introduction.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation theory and applications.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Machine learning based COVID-19 study performance prediction
PPT
Teaching material agriculture food technology
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KodekX | Application Modernization Development
Network Security Unit 5.pdf for BCA BBA.
Spectral efficient network and resource selection model in 5G networks
Modernizing your data center with Dell and AMD
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Big Data Technologies - Introduction.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation theory and applications.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Machine learning based COVID-19 study performance prediction
Teaching material agriculture food technology
20250228 LYD VKU AI Blended-Learning.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
NewMind AI Monthly Chronicles - July 2025
Encapsulation_ Review paper, used for researhc scholars
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Integrating Force.com with Heroku

  • 1. Integrating Force.com with Heroku Force.com Developer Meetup – Washington, DC August 8 2012 Pat Patterson Principal Developer Evangelist @metadaddy Follow us @forcedotcom
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year ended January 31, 2012. This document and others are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 3. Agenda NEW!!! Force.com app ->Web Service External app ->Force.com NEW!!! HerokuPostgres Data Clips Follow us @forcedotcom
  • 4. Calling Web Services from Force.com REST/SOAP Request REST/SOAP Response Force.com app External System Follow us @forcedotcom
  • 5. Interactive Context  For example, user presses custom button – Call web service synchronously from controller // Create jsonString, then... HttpRequestreq = new HttpRequest(); req.setMethod('POST'); req.setEndpoint('https://webservice.herokuapp.com/order'); req.setHeader('Content-Type', 'application/json'); req.setBody(jsonString); Http http = new Http(); res = http.send(req); // Now parse response and update record(s) Follow us @forcedotcom
  • 6. Trigger Context  Synchronous callouts are not allowed! – Call web service asynchronously from trigger // In Apex Trigger, build list of ids, then... Integration.postOrder(invoiceIds); // Define asynchronous method in Apex Class @future (callout=true) public static void postOrder(List<Id>invoiceIds) { // ... } Follow us @forcedotcom
  • 7. Calling Force.com from External Apps REST/SOAP Request REST/SOAP Response Force.com app External System Follow us @forcedotcom
  • 8. Force.com REST API  Record-oriented REST API – Invoke HTTP POST/GET/PATCH/DELETE on URLs – https://na9.salesforce.com/services/data/v25.0/ sobjects/Invoice_Statement__c/a01E0000000BsAz  Query and Search Endpoints – .../v25.0/query?q=SELECT+Invoice_Value__c+FROM+ Invoice_Statement__c  Authenticate via OAuth – Interactive or username/password Follow us @forcedotcom
  • 9. Accessible From Any Environment $ curl -H 'X-PrettyPrint: 1’ -H 'Authorization: Bearer XXX' https://na1.salesforce.com/services/data/v25.0/sobjects/Invoic e_Statement__c/a015000000W5a5YAAR { "attributes" : { "type" : "Invoice_Statement__c", "url" : "/services/data/v25.0/sobjects/Invoice_Statement__c/a015000000 W5a5YAAR" }, "Id" : "a015000000W5a5YAAR", "OwnerId" : "00550000001fg5OAAQ", … Follow us @forcedotcom
  • 10. Force.com REST API Connector  Lightweight Java library – https://github.com/jesperfj/force-rest-api  Includes OAuth implementations  Define model classes for standard/custom object  Easy CRUD // Set up api object from config, session, then... Account a = new Account(); a.setName("Test account"); String id = api.createSObject("account", a); a= api.getSObject("Account",id).as(Account.class); Follow us @forcedotcom
  • 11. Apex REST Methods  Insert/update many records in a single transaction @RestResource(urlMapping='/Invoice/*') global class QuickInvoiceService { @HttpPost global static String createInvoiceAndItem(String description, StringmerchId, Integer units) { // Create invoice and line item records // Either both are created or neither } Follow us @forcedotcom
  • 12. HerokuPostgres Data Clips NEW!!!  HTML, JSON, CSV, YAML representations of a SQL Query SELECT "characters"."name" AS "character_name", SUM(length("paragraphs"."plain_text")) as "letter_count", COUNT(*) as "paragraph_count", SUM(length("paragraphs"."plain_text"))/COUNT(*) as "drone_factor" FROM "paragraphs” INNER JOIN "characters" ON "paragraphs"."character_id" = "characters"."id” https://postgres.heroku.com/dataclips/ljfeywbwtxbcabardaxvcstjyodi Follow us @forcedotcom
  • 13. Integrating Data Clips with Force.com  Just another REST call to retrieve JSON data…  Define Apex Class to model data public class DroneFactor { public String character_name; public String letter_count; public String paragraph_count; public String drone_factor; public static DroneFactorparse(Stringjson) { return (DroneFactor) System.JSON.deserialize(json, DroneFactor.class); } } Follow us @forcedotcom
  • 14. Integrating Data Clips with Force.com  Write client to retrieve JSON public class DroneFactorClient { public static List<DroneFactor> get() { HttpRequestreq = new HttpRequest(); req.setEndpoint('https://postgres.heroku.com/dataclips/ljfeywbwtxbcabar daxvcstjyodi.json'); req.setMethod('GET'); Http http = new Http(); HTTPResponse res = http.send(req); System.debug('Data Clip response code: '+res.getStatusCode()+'. Status: '+res.getStatus()); return (List<DroneFactor>)System.JSON.deserialize(res.getBody(), List<DroneFactor>.class); } } Follow us @forcedotcom
  • 15. Resources  Force.com Integration Workbook http://wiki.developerforce.com/page/Force.com_workbook#Force.com_Integration_ Workbook  Force.comREST API Connector https://github.com/jesperfj/force-rest-api  Integrating Force.com and HerokuPostgres with Data Clips http://blogs.developerforce.com/developer-relations/2012/08/integrating- force-com-and-heroku-postgres-with-data-clips.html Follow us @forcedotcom