Navigate to the Models page and get started by choosing a Source. Next, choose one of our modeling methods. Check out our docs to learn more about building Hightouch models using existing dbt models or existing Looks. In this section, we will cover our SQL Editor and Table Selector methods.
With the SQL Editor modeling method, you can use the SQL Editor to create a new query and establish your model. The SQL Editor can execute whatever SQL is native to the warehouse or database that you are using.
Your query will depend on the data in your model. If you are using the Sample B2B SaaS Source, you can try:
SELECT * FROM public.users
Click Preview to see a preview of the data. By default, we limit the preview to the first 100 rows.
Next, click Continue and give the model a name. You will also need to pick the primary key for this table, usually id.
Note: It is not possible to save a model if the query does not return any results. If you need to save a model with a query because you expect there to be results in the future even if there are none now, try adding the following SQL to the end of your query. This SQL will add a row of 'ignore' values which will not match against anything in your destination but will always be present so you can save the query.
UNION ALL select 'ignore', 'ignore', 'ignore'
With the Table Selector modeling method, you can build Hightouch models using existing tables or views within your Source without writing any SQL.
The first time you use the Table Selector you may not see your tables populated. Click on the refresh button to the left of the search bar and your tables should appear.
Get started by selecting the table or view that you would like to use as your model. Next, click Preview to see a preview of the first 100 rows of the table. After selecting your table or view, click Continue and give the model a name. You will also need to pick the primary for this table, usually id, before clicking Finish.
When using the SQL Editor or the Table Selector, each model needs a unique identifier. Hightouch uses this identifier to compare subsequent runs to only change rows where a value has changed for that particular entry.