diff --git a/.env.sample b/.env.sample index f21de7484..79dd000ed 100644 --- a/.env.sample +++ b/.env.sample @@ -3,3 +3,5 @@ GATSBY_ALGOLIA_SEARCH_KEY= ALGOLIA_ADMIN_KEY= GATSBY_CLOUDFLARE_URL= BUILD_ENV=LOCAL + + diff --git a/modules/ROOT/pages/common/nav-embedding.adoc b/modules/ROOT/pages/common/nav-embedding.adoc index 347aa02bb..c65bdd872 100644 --- a/modules/ROOT/pages/common/nav-embedding.adoc +++ b/modules/ROOT/pages/common/nav-embedding.adoc @@ -124,6 +124,8 @@ Customize and integrate Embedding tutorials * link:{{navprefix}}/tutorials/tutorials-overview[Embedding tutorials] + +//// * link:{{navprefix}}/tutorials/tse-fundamentals/intro[Embedding Fundamentals] ** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-01[01 - Overview] ** link:{{navprefix}}/tutorials/tse-fundamentals/lesson-02[02 - Set up for course] @@ -142,8 +144,16 @@ Embedding tutorials ** link:{{navprefix}}/tutorials/react-components/lesson-02[02 - ThoughtSpot component pages] ** link:{{navprefix}}/tutorials/react-components/lesson-03[03 - Menus and navigation elements] ** link:{{navprefix}}/tutorials/react-components/lesson-04[04 - Event handling] -* link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your Chatbot] +//* link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your Chatbot] + +* link:{{navprefix}}/tutorials/react-components/intro[Introduction] +** link:{{navprefix}}/tutorials/react-components/lesson-01[Initializing ThoughtSpot Embed SDK] +** link:{{navprefix}}/tutorials/react-components/lesson-02[ThoughtSpot component pages] +** link:{{navprefix}}/tutorials/react-components/lesson-03[Menus and other navigation elements] +** link:{{navprefix}}/tutorials/react-components/lesson-04[Event handling] +* link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your chatbot] +//// [.sidebar-title] Reference guides and changelog diff --git a/modules/ROOT/pages/common/nav-release-notes.adoc b/modules/ROOT/pages/common/nav-release-notes.adoc new file mode 100644 index 000000000..061b9ec4d --- /dev/null +++ b/modules/ROOT/pages/common/nav-release-notes.adoc @@ -0,0 +1,17 @@ + +:page-pageid: nav-release-notes +:page-description: Release notes and changelogs + +[navSection] + +[.sidebar-title] +Release notes and changelogs + +* link:{{navprefix}}/whats-new[What's new] +* Changelog +** link:{{navprefix}}/embed-sdk-changelog[Visual Embed SDK changelog] +** link:{{navprefix}}/mobile-sdk-changelog[Mobile Embed SDK changelog] +** link:{{navprefix}}/rest-v2-changelog[REST API v2 changelog] +** link:{{navprefix}}/mcp-server-changelog[Spotter MCP Server changelog] +* link:{{navprefix}}/deprecated-features[Deprecation announcements] + diff --git a/modules/ROOT/pages/common/nav-rest-api.adoc b/modules/ROOT/pages/common/nav-rest-api.adoc index b81241013..4831ba813 100644 --- a/modules/ROOT/pages/common/nav-rest-api.adoc +++ b/modules/ROOT/pages/common/nav-rest-api.adoc @@ -38,8 +38,6 @@ REST APIs ** link:{{navprefix}}/webhooks-rest-api[Webhook APIs] - - [.sidebar-title] REST API SDK @@ -50,14 +48,19 @@ REST API SDK * link:{{navprefix}}/rest-api-sdk-csharp[C# SDK] * link:{{navprefix}}/rest-apiv2-js[REST API v2.0 in JavaScript] + [.sidebar-title] REST API Tutorials * link:{{navprefix}}/tutorials/rest-api/intro[REST API Tutorials] + +//// * link:{{navprefix}}/tutorials/rest-api/lesson-01[01 - REST API overview] * link:{{navprefix}}/tutorials/rest-api/lesson-02[02 - Simple Python implementation] * link:{{navprefix}}/tutorials/rest-api/lesson-03[03 - Complex REST API workflows] +//// + [.sidebar-title] REST API v1 (DEPRECATED) diff --git a/modules/ROOT/pages/common/nav-tutorials.adoc b/modules/ROOT/pages/common/nav-tutorials.adoc new file mode 100644 index 000000000..5ebf5d5b7 --- /dev/null +++ b/modules/ROOT/pages/common/nav-tutorials.adoc @@ -0,0 +1,51 @@ + +:page-pageid: nav-tutorials +:page-description: Tutorials navigation + +[navSection] + +[.sidebar-title] +Embedding fundamentals + +* link:{{navprefix}}/tutorials/tse-fundamentals/intro[Introduction] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-01[Overview of ThoughtSpot Embedded] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-02[Setting up for the course] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-03[Security Setting] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-04[Start Coding] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-05[Embed Search] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-06[Embed Natural Language Search] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-07[Embed Liveboard] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-08[Embed Liveboard Visualization] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-09[Embed Application] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-10[Styling ThoughtSpot] +* link:{{navprefix}}/tutorials/tse-fundamentals/lesson-11[Summary and Next Steps] + +[.sidebar-title] +UI elements and style customization + +* link:{{navprefix}}/tutorials/style-customization/intro[Introduction] +* link:{{navprefix}}/tutorials/style-customization/step-01[Getting started] +* link:{{navprefix}}/tutorials/style-customization/step-02[Large component elements] +* link:{{navprefix}}/tutorials/style-customization/step-03[CSS styles] +* link:{{navprefix}}/tutorials/style-customization/step-04[Text strings and icon replacement] +* link:{{navprefix}}/tutorials/style-customization/step-05[Menu items] +* link:{{navprefix}}/tutorials/style-customization/step-06[Conclusion] + +[.sidebar-title] +REST API tutorials + +** link:{{navprefix}}/tutorials/rest-api/intro[Introduction] +** link:{{navprefix}}/tutorials/rest-api/lesson-01[REST API overview] +** link:{{navprefix}}/tutorials/rest-api/lesson-02[Simple Python implementation] +** link:{{navprefix}}/tutorials/rest-api/lesson-03[Complex REST API workflows] +** link:{{navprefix}}/tutorials/rest-api/lesson-04[Browser JavaScript REST API implementation] + +[.sidebar-title] +React Components Tutorial + +* link:{{navprefix}}/tutorials/react-components/intro[Introduction] +* link:{{navprefix}}/tutorials/react-components/lesson-01[Initializing ThoughtSpot Embed SDK] +* link:{{navprefix}}/tutorials/react-components/lesson-02[ThoughtSpot component pages] +* link:{{navprefix}}/tutorials/react-components/lesson-03[Menus and other navigation elements] +* link:{{navprefix}}/tutorials/react-components/lesson-04[Event handling] +//* link:{{navprefix}}/tutorials/spotter/integrate-into-chatbot[Integrate Spotter into your chatbot] diff --git a/modules/ROOT/pages/common/nav-walkthroughs.adoc b/modules/ROOT/pages/common/nav-walkthroughs.adoc new file mode 100644 index 000000000..86bcf1d09 --- /dev/null +++ b/modules/ROOT/pages/common/nav-walkthroughs.adoc @@ -0,0 +1,24 @@ + +:page-pageid: nav-walkthroughs +:page-description: Guided Walkthroughs navigation + +[.sidebar-title] +Get started + +* Build a Data-Driven App with ThoughtSpot Embedded +** link:{{navprefix}}/tutorials/embed-data-driven-app/intro[Introduction] +** link:{{navprefix}}/tutorials/embed-data-driven-app/step-00[Get into the Developer Portal] +** link:{{navprefix}}/tutorials/embed-data-driven-app/step-02[Get the base Liveboard rendering] +** link:{{navprefix}}/tutorials/embed-data-driven-app/step-03[Make it conversational] +** link:{{navprefix}}/tutorials/embed-data-driven-app/step-04[Style it to match the portal] +** link:{{navprefix}}/tutorials/embed-data-driven-app/step-05[Wire in a custom action] +** link:{{navprefix}}/tutorials/embed-data-driven-app/troubleshooting[When it doesn't just work] +** link:{{navprefix}}/tutorials/embed-data-driven-app/summary[Where to go from here] + +* Build It Faster: Embedding ThoughtSpot with SpotterCode +** link:{{navprefix}}/tutorials/spottercode-embed/intro[Introduction] +** link:{{navprefix}}/tutorials/spottercode-embed/step-01[Set up SpotterCode, your pair programmer] +** link:{{navprefix}}/tutorials/spottercode-embed/step-02[Embed the Liveboard view] +** link:{{navprefix}}/tutorials/spottercode-embed/step-03[Embed Spotter: Extend it to conversational analytics] +** link:{{navprefix}}/tutorials/spottercode-embed/step-04[Troubleshooting] +** link:{{navprefix}}/tutorials/spottercode-embed/summary[Where to go from here] diff --git a/modules/ROOT/pages/common/nav.adoc b/modules/ROOT/pages/common/nav.adoc index 688e73792..0dc98b8d2 100644 --- a/modules/ROOT/pages/common/nav.adoc +++ b/modules/ROOT/pages/common/nav.adoc @@ -5,15 +5,18 @@ [navSection] [.sidebar-title] -Release notes and changelogs +Hands-on Guides -* link:{{navprefix}}/whats-new[What's new] -* Changelog -** link:{{navprefix}}/embed-sdk-changelog[Visual Embed SDK changelog] -** link:{{navprefix}}/mobile-sdk-changelog[Mobile Embed SDK changelog] -** link:{{navprefix}}/rest-v2-changelog[REST API v2 changelog] -** link:{{navprefix}}/mcp-server-changelog[Spotter MCP Server changelog] -* link:{{navprefix}}/deprecated-features[Deprecation announcements] +* link:{{navprefix}}/tutorials/walkthroughs[Walkthroughs] + +[.sidebar-title] +Quickstarts + +* link:{{navprefix}}/getting-started[Embed ThoughtSpot] +* link:{{navprefix}}/SpotterCode[SpotterCode] +* link:{{navprefix}}/rest-apis[REST APIs] +* link:{{navprefix}}/ai-analytics-integration[AI analytics integration] +* link:{{navprefix}}/mcp-integration[MCP Server integration] [.sidebar-title] Live Playgrounds @@ -27,69 +30,61 @@ Live Playgrounds * +++Theme Builder+++ ** link:{{navprefix}}/theme-builder-doc[How to use] - [.sidebar-title] -Get started +Reference Guides -* link:{{navprefix}}/getting-started[Embed ThoughtSpot] -* link:{{navprefix}}/SpotterCode[SpotterCode] -* link:{{navprefix}}/rest-apis[REST APIs] -* link:{{navprefix}}/ai-analytics-integration[AI analytics integration] -* link:{{navprefix}}/mcp-integration[MCP Server integration] -//** link:{{navprefix}}/tutorials/tutorials-overview[Tutorials] * link:{{navprefix}}/VisualEmbedSdk[SDK and API reference] -** link:{{navprefix}}/VisualEmbedSdk[Visual Embed SDK] -** link:{{navprefix}}/rest-apiv2-reference[REST API] -** link:{{navprefix}}/mcp-tool-reference[MCP tools] +* link:{{navprefix}}/rest-apiv2-reference[REST API] +* link:{{navprefix}}/mcp-tool-reference[MCP tools] +[.sidebar-title] +Integration Guides + +* link:{{navprefix}}/webhooks-overview[Overview] +** link:{{navprefix}}/webhooks-ui[Webhooks UI] +** link:{{navprefix}}/webhooks-comm-channel[Webhook communication channels] +** link:{{navprefix}}/webhooks-lb-schedule[Webhook connection for Liveboard scheduled events] +** link:{{navprefix}}/webhooks-s3-integration[AWS S3 storage integration for webhook delivery] +** link:{{navprefix}}/webhooks-gcs-storage[GCS storage integration for webhook delivery] +** link:{{navprefix}}/webhooks-lb-payload[Webhook response payload] +** link:{{navprefix}}/webhooks-kpi[Webhook connection for KPI alerts] + +* link:{{navprefix}}/external-tool-script-integration[External tools and scripts] +* link:{{navprefix}}/pendo-integration[Pendo integration with embed] +* link:{{navprefix}}/sf-integration[Integration with Salesforce] +* link:{{navprefix}}/vercel-integration[Vercel integration] [.sidebar-title] -Build and deploy +Deployment guides -** link:{{navprefix}}/thoughtspot-objects[ThoughtSpot objects] -** link:{{navprefix}}/timezone-aware-filtering[Timezone-aware keywords and filters] -** link:{{navprefix}}/variables[Variables] -** link:{{navprefix}}/parameterize-metadata[Parameterize metadata] +* link:{{navprefix}}/thoughtspot-objects[ThoughtSpot objects] +* link:{{navprefix}}/timezone-aware-filtering[Timezone-aware keywords and filters] +* link:{{navprefix}}/variables[Variables] +* link:{{navprefix}}/parameterize-metadata[Parameterize metadata] * link:{{navprefix}}/development-and-deployment[Development and deployment] -** link:{{navprefix}}/deploy-with-tml-apis[Deploy with TML APIs] -*** link:{{navprefix}}/git-provider-integration[Git provider integration] -*** link:{{navprefix}}/modify-tml[TML modification] +* link:{{navprefix}}/deploy-with-tml-apis[Deploy with TML APIs] +** link:{{navprefix}}/git-provider-integration[Git provider integration] +** link:{{navprefix}}/modify-tml[TML modification] * link:{{navprefix}}/publish-data-overview[Publish content to Orgs] ** link:{{navprefix}}/publish-to-orgs[Publish objects to Orgs] * link:{{navprefix}}/git-integration[Deploy with GitHub APIs (legacy)] ** link:{{navprefix}}/git-configuration[Configure GitHub integration] ** link:{{navprefix}}/git-api[GitHub REST APIs] ** link:{{navprefix}}/guid-mapping[GUID mapping] - -[.sidebar-title] -Multi-tenancy - * link:{{navprefix}}/multi-tenancy[Overview] -* link:{{navprefix}}/orgs[Multi-tenancy with Orgs] +** link:{{navprefix}}/orgs[Multi-tenancy with Orgs] ** link:{{navprefix}}/orgs-api-op[Org administration] ** link:{{navprefix}}/multitenancy-within-an-org[Multi-tenancy within an Org] ** link:{{navprefix}}/single-tenant-data-models[Single-tenant data models with Orgs] * link:{{navprefix}}/tse-cluster[Cluster maintenance and upgrade] [.sidebar-title] -Webhooks +Tutorials -* link:{{navprefix}}/webhooks-overview[Overview] -* link:{{navprefix}}/webhooks-ui[Webhooks UI] -* link:{{navprefix}}/webhooks-comm-channel[Webhook communication channels] -* link:{{navprefix}}/webhooks-lb-schedule[Webhook connection for Liveboard scheduled events] -* link:{{navprefix}}/webhooks-s3-integration[AWS S3 storage integration for webhook delivery] -* link:{{navprefix}}/webhooks-gcs-storage[GCS storage integration for webhook delivery] -* link:{{navprefix}}/webhooks-lb-payload[Webhook response payload] -* link:{{navprefix}}/webhooks-kpi[Webhook connection for KPI alerts] +* link:{{navprefix}}/tutorials/tutorials-overview[Embedding tutorials] +* link:{{navprefix}}/tutorials/rest-api/intro[REST API Tutorials] -[.sidebar-title] -Integration with external tools -** link:{{navprefix}}/external-tool-script-integration[External tools and scripts] -** link:{{navprefix}}/pendo-integration[Pendo integration with embed] -** link:{{navprefix}}/sf-integration[Integration with Salesforce] -** link:{{navprefix}}/vercel-integration[Vercel integration] [.sidebar-title] Additional resources diff --git a/modules/ROOT/pages/style-customization.adoc b/modules/ROOT/pages/style-customization.adoc index 6fd53a71e..4b3288c8b 100644 --- a/modules/ROOT/pages/style-customization.adoc +++ b/modules/ROOT/pages/style-customization.adoc @@ -29,7 +29,7 @@ Custom CSS allows developers to override the default styles and UI element speci + To customize themes and variables in the CSS file, developers must know the basics of HTML and CSS framework and how to build custom themes. For more information, see xref:css-customization.adoc[Advanced customization with custom CSS]. -A xref:style-customization_tutorial.adoc[hands-on tutorial] is also available to learn how to test style customization capabilities using Visual Embed Playground. +A xref:style-customization_tutorial-intro.adoc[hands-on tutorial] is also available to learn how to test style customization capabilities using Visual Embed Playground. == Scope of customization diff --git a/modules/tutorials/pages/embed-data-driven-app/build-data-driven-app-with-tse-intro.adoc b/modules/tutorials/pages/embed-data-driven-app/build-data-driven-app-with-tse-intro.adoc new file mode 100644 index 000000000..a315a67d8 --- /dev/null +++ b/modules/tutorials/pages/embed-data-driven-app/build-data-driven-app-with-tse-intro.adoc @@ -0,0 +1,62 @@ += Build a data-driven app with ThoughtSpot Embedded +:toc!: +:linkattrs: +:sectanchors: +:page-title: Build a Data-Driven App with ThoughtSpot Embedded +:page-pageid: embed-data-driven-app__intro +:page-description: A hands-on guide to embedding a ThoughtSpot Liveboard and Spotter in a host application, built around one real embedding project. + +A hands-on guide, built around one real embedding project. + +== The scenario + +Imagine you're a full-stack developer at SpotStay, a short-term rental company. +Your team runs an internal portal that hosts use every day to check bookings, occupancy, and maintenance status across their listings. +Right now, if a host wants to know why occupancy dropped for a listing, they file a ticket and wait for the data team to pull a report. + +[div videoContainer] +-- +video::./images/mktng-tutorials/frame-video.mp4[width=100%,options="autoplay,loop"] +-- + +*Your mandate*: give hosts a self-serve view inside the portal they already use. + +* Embed a Liveboard so hosts see booking volume, occupancy rate, and average daily rate at a glance. +* Embed Spotter so hosts can ask follow-up questions in plain language, such as "why did occupancy drop for our Austin listings this week?". Spotter answers without you building a custom query interface for every possible question. +* Style and lock it down so it feels like part of the portal, not a third-party iframe bolted on the side. + +[NOTE] +==== +Liveboard is an AI-augmented dashboard within ThoughtSpot. +==== + +This guide covers the build end to end, the same path you would take for your own app. It matches the SpotStay example on GitHub if you want to work through it in code. +== Before you start + +* Confirm access to a ThoughtSpot instance (trial or org instance) with Developer or Admin privilege. +* Add your app domain to the CSP and CORS allowlist (*Develop* > *Customizations* > *Security Settings*). +* Confirm you have content to embed: a connected data warehouse, a data model, and a Liveboard. +* Confirm Spotter is enabled on your instance. This is on by default for most Cloud instances. If you don't see it, ask your ThoughtSpot administrator to enable it. + +[NOTE] +==== +Trial users: sample data is pre-connected. No data setup is required. +==== + +== Steps in this tutorial + +* xref:build-data-driven-app-with-tse-step-00.adoc[Get into the Developer Portal] +//* xref:build-data-driven-app-with-tse-step-01.adoc[Set up the project] +* xref:build-data-driven-app-with-tse-step-02.adoc[Get the base dashboard rendering] +* xref:build-data-driven-app-with-tse-step-03.adoc[Make it conversational] +* xref:build-data-driven-app-with-tse-step-04.adoc[Style it to match the portal] +* xref:build-data-driven-app-with-tse-step-05.adoc[Wire in a custom action] +//* xref:build-data-driven-app-with-tse-step-06.adoc[Lock it down] +* xref:build-data-driven-app-with-tse-troubleshooting.adoc[When it doesn't just work] +* xref:build-data-driven-app-with-tse-summary.adoc[Where to go from here] + +++++ +