Skip to main content

Display Onboarding Flow

Onboarding Flow

Generating Onboarding URL

To onboard the user, you will need to redirect them to our onboarding flow. The following endpoint will generate an onboarding URL for the user–
async function getWattshiftOnboardingUrl() {
  const { url, homeId } = await wattshiftApiCall(
    "https://api.wattshift.com/v1/onboarding/url/generate",
    {
      userId: "user id",
      redirectUrl: "https://yourbackend.com/redirecturi",
      enableThirdPartyDevice: false, // set to false if you control your own devices.
      hvacs: [
        {
          name: "user id thermostat",
          enabled: true,
          defaultMode: "HEAT",
          tempUnits: "F",
          maxTemp: "75",
          minTemp: "65",
          defaultTemp: "70",
          deviceType: "Hvac",
          canHeat: true,
          canCool: false,
          targetTemp: 70,
          currentTemp: 70,
        },
      ],
    },
  );
  return { url, homeId };
}
The URL’s domain will always be https://app.wattshift.com but this endpoint will provide a sessionToken that is temporary and tied to your API Key
The userId is the unique identifier of the user in your system, which will be used to query the user’s data once the onboarding flow is complete. Your frontend should invoke the onboarding URL in a webview or a new tab.
const { url } = await getWattshiftOnboardingUrl();
const webview = document.createElement("webview");
webview.src = url;
document.body.appendChild(webview);
The user will be then be prompted to onboard onto WattShift and we will redirect to your redirect URL once the onboarding flow is complete.

Query Onboarding Status

You can query for the onboarding status with the following url
curl -X POST "https://api.wattshift.com/v1/onboarding/status/get"
     -d '{ "homeId": "home id" }'
      -H "x-ws-api-key: your api key"
Now you need to ensure you are responding to optimized schedules sent out by WattShift!