Version 4.0.24.20 (latest)
Create a Scheduled Plan
Create a scheduled plan to render a Look or Dashboard on a recurring schedule.
To create a scheduled plan, you MUST provide values for the following fields:
name
and
look_id
, dashboard_id
, lookml_dashboard_id
, or query_id
and
cron_tab
or datagroup
and
at least one scheduled_plan_destination
A scheduled plan MUST have at least one scheduled_plan_destination defined.
When look_id
is set, require_no_results
, require_results
, and require_change
are all required.
If create_scheduled_plan
fails with a 422 error, be sure to look at the error messages in the response which will explain exactly what fields are missing or values that are incompatible.
The queries that provide the data for the look or dashboard are run in the context of user account that owns the scheduled plan.
When run_as_recipient
is false
or not specified, the queries that provide the data for the
look or dashboard are run in the context of user account that owns the scheduled plan.
When run_as_recipient
is true
and all the email recipients are Looker user accounts, the
queries are run in the context of each recipient, so different recipients may see different
data from the same scheduled render of a look or dashboard. For more details, see Run As Recipient.
Admins can create and modify scheduled plans on behalf of other users by specifying a user id.
Non-admin users may not create or modify scheduled plans by or for other users.
Email Permissions:
For details about permissions required to schedule delivery to email and the safeguards
Looker offers to protect against sending to unauthorized email destinations, see Email Domain Allow List for Scheduled Looks.
Scheduled plan destinations must specify the data format to produce and send to the destination.
Formats:
format |
Description |
json |
A JSON object containing a data property which contains an array of JSON objects, one per row. No metadata. |
json_detail |
Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query |
inline_json |
Same as the JSON format, except that the data property is a string containing JSON-escaped row data. Additional properties describe the data operation. This format is primarily used to send data to web hooks so that the web hook doesn't have to re-encode the JSON row data in order to pass it on to its ultimate destination. |
csv |
Comma separated values with a header |
txt |
Tab separated values with a header |
html |
Simple html |
xlsx |
MS Excel spreadsheet |
wysiwyg_pdf |
Dashboard rendered in a tiled layout to produce a PDF document |
assembled_pdf |
Dashboard rendered in a single column layout to produce a PDF document |
wysiwyg_png |
Dashboard rendered in a tiled layout to produce a PNG image |
|
|
Valid formats vary by destination type and source object. wysiwyg_pdf
is only valid for dashboards, for example.
Request
POST
/scheduled_plans
Expand HTTP Body definition...
Expand ScheduledPlan definition...
name
string
Name of this scheduled plan
user_id
string
User Id which owns this scheduled plan
run_as_recipient
boolean
Whether schedule is run as recipient (only applicable for email recipients)
enabled
boolean
Whether the ScheduledPlan is enabled
look_id
string
Id of a look
dashboard_id
string
Id of a dashboard
lookml_dashboard_id
string
Id of a LookML dashboard
filters_string
string
Query string to run look or dashboard with
dashboard_filters
string
(DEPRECATED) Alias for filters_string field
require_results
boolean
Delivery should occur if running the dashboard or look returns results
require_no_results
boolean
Delivery should occur if the dashboard look does not return results
require_change
boolean
Delivery should occur if data have changed since the last run
send_all_results
boolean
Will run an unlimited query and send all results.
crontab
string
Vixie-Style crontab specification when to run
datagroup
string
Name of a datagroup; if specified will run when datagroup triggered (can't be used with cron string)
timezone
string
Timezone for interpreting the specified crontab (default is Looker instance timezone)
scheduled_plan_destination
run_once
boolean
Whether the plan in question should only be run once (usually for testing)
include_links
boolean
Whether links back to Looker should be included in this ScheduledPlan
custom_url_base
string
Custom url domain for the scheduled entity
custom_url_params
string
Custom url path and parameters for the scheduled entity
custom_url_label
string
Custom url label for the scheduled entity
show_custom_url
boolean
Whether to show custom link back instead of standard looker link
pdf_paper_size
string
The size of paper the PDF should be formatted to fit. Valid values are: "letter", "legal", "tabloid", "a0", "a1", "a2", "a3", "a4", "a5".
pdf_landscape
boolean
Whether the PDF should be formatted for landscape orientation
embed
boolean
Whether this schedule is in an embed context or not
color_theme
string
Color scheme of the dashboard if applicable
long_tables
boolean
Whether or not to expand table vis to full length
inline_table_width
integer
The pixel width at which we render the inline table visualizations
created_at
lock
string
Date and time when ScheduledPlan was created
updated_at
lock
string
Date and time when ScheduledPlan was last updated
user
lock
User who owns this ScheduledPlan
next_run_at
lock
string
When the ScheduledPlan will next run (null if running once)
last_run_at
lock
string
When the ScheduledPlan was last run
can
lock
object
Operations the current user is able to perform on this object
Response
200: Scheduled Plan
name
string
Name of this scheduled plan
user_id
string
User Id which owns this scheduled plan
run_as_recipient
boolean
Whether schedule is run as recipient (only applicable for email recipients)
enabled
boolean
Whether the ScheduledPlan is enabled
look_id
string
Id of a look
dashboard_id
string
Id of a dashboard
lookml_dashboard_id
string
Id of a LookML dashboard
filters_string
string
Query string to run look or dashboard with
dashboard_filters
string
(DEPRECATED) Alias for filters_string field
require_results
boolean
Delivery should occur if running the dashboard or look returns results
require_no_results
boolean
Delivery should occur if the dashboard look does not return results
require_change
boolean
Delivery should occur if data have changed since the last run
send_all_results
boolean
Will run an unlimited query and send all results.
crontab
string
Vixie-Style crontab specification when to run
datagroup
string
Name of a datagroup; if specified will run when datagroup triggered (can't be used with cron string)
timezone
string
Timezone for interpreting the specified crontab (default is Looker instance timezone)
scheduled_plan_destination
Expand ScheduledPlanDestination definition...
scheduled_plan_id
string
Id of a scheduled plan you own
format
string
The data format to send to the given destination. Supported formats vary by destination, but include: "txt", "csv", "inline_json", "json", "json_detail", "xlsx", "html", "wysiwyg_pdf", "assembled_pdf", "wysiwyg_png"
apply_formatting
boolean
Are values formatted? (containing currency symbols, digit separators, etc.
apply_vis
boolean
Whether visualization options are applied to the results.
address
string
Address for recipient. For email e.g. 'user@example.com'. For webhooks e.g. 'https://example.domain/path'. For Amazon S3 e.g. 's3://bucket-name/path/'. For SFTP e.g. 'sftp://host-name/path/'.
looker_recipient
lock
boolean
Whether the recipient is a Looker user on the current instance (only applicable for email recipients)
type
string
Type of the address ('email', 'webhook', 's3', or 'sftp')
parameters
string
JSON object containing parameters for external scheduling. For Amazon S3, this requires keys and values for access_key_id and region. For SFTP, this requires a key and value for username.
secret_parameters
string
(Write-Only) JSON object containing secret parameters for external scheduling. For Amazon S3, this requires a key and value for secret_access_key. For SFTP, this requires a key and value for password.
message
string
Optional message to be included in scheduled emails
run_once
boolean
Whether the plan in question should only be run once (usually for testing)
include_links
boolean
Whether links back to Looker should be included in this ScheduledPlan
custom_url_base
string
Custom url domain for the scheduled entity
custom_url_params
string
Custom url path and parameters for the scheduled entity
custom_url_label
string
Custom url label for the scheduled entity
show_custom_url
boolean
Whether to show custom link back instead of standard looker link
pdf_paper_size
string
The size of paper the PDF should be formatted to fit. Valid values are: "letter", "legal", "tabloid", "a0", "a1", "a2", "a3", "a4", "a5".
pdf_landscape
boolean
Whether the PDF should be formatted for landscape orientation
embed
boolean
Whether this schedule is in an embed context or not
color_theme
string
Color scheme of the dashboard if applicable
long_tables
boolean
Whether or not to expand table vis to full length
inline_table_width
integer
The pixel width at which we render the inline table visualizations
created_at
lock
string
Date and time when ScheduledPlan was created
updated_at
lock
string
Date and time when ScheduledPlan was last updated
user
lock
User who owns this ScheduledPlan
Expand UserPublic definition...
can
lock
object
Operations the current user is able to perform on this object
first_name
lock
string
First Name
last_name
lock
string
Last Name
display_name
lock
string
Full name for display (available only if both first_name and last_name are set)
avatar_url
lock
string
URL for the avatar image (may be generic)
url
lock
string
Link to get this item
next_run_at
lock
string
When the ScheduledPlan will next run (null if running once)
last_run_at
lock
string
When the ScheduledPlan was last run
can
lock
object
Operations the current user is able to perform on this object
400: Bad Request
message
lock
string
Error details
documentation_url
lock
string
Documentation link
404: Not Found
message
lock
string
Error details
documentation_url
lock
string
Documentation link
409: Resource Already Exists
message
lock
string
Error details
documentation_url
lock
string
Documentation link
422: Validation Error
message
lock
string
Error details
Expand ValidationErrorDetail definition...
field
lock
string
Field with error
code
lock
string
Error code
message
lock
string
Error info message
documentation_url
lock
string
Documentation link
documentation_url
lock
string
Documentation link
429: Too Many Requests
message
lock
string
Error details
documentation_url
lock
string
Documentation link
Examples