Goals
Commands for managing goals in the Knock CLI.
Goal commands enable you to manage goals in your Knock account from the CLI.
Goal file structure
#When goals are pulled from Knock, they are stored in directories named by their goal key. Each goal directory contains a goal.json file that describes the goal's configuration (name, description, and condition).
goals/ āāā trial-conversion/ āāā goal.json
If you're migrating your local goal files into Knock, you can arrange them using the example file structure above and then push them into Knock with a single command using knock goal push --all.
To attach a goal to a workflow, broadcast, or guide, set goal_attachment on that resource's JSON (goal_key and attribution_window_days). Attachments are not stored on the goal itself.
knock goal list [flags]
#Display all goals for an environment. Use an --environment flag to specify the target environment; if omitted, the Knock CLI defaults to the development environment.
Flags
The environment to use. Defaults to development.
The branch to use. Defaults to the main branch.
The total number to fetch per page.
Fetches all entries after this cursor.
Fetches all entries before this cursor.
Format output as json.
knock goal get <goal_key> [flags]
#Display a single goal from an environment.
Use an --environment flag to specify the target environment; if omitted, the Knock CLI defaults to the development environment.
Flags
The environment to use. Defaults to development.
The branch to use. Defaults to the main branch.
Format output as json.
knock goal pull <goal_key> [flags]
#Pull one or more goals from an environment into a local file system. Knock CLI will create a new goal directory or update the existing goal directory in the local file system.
By default this command will resolve to the goals resource directory via your knock.json file. When not set, will use the current working directory as the default. In the case of the --all flag, the target directory path will be resolved via your knock.json file or the --goals-dir flag.
Note: if pulling the target goal for the first time (or all goals), Knock CLI will ask to confirm before writing to the local file system.
See the Goal file structure section for details on how goal files are organized.
Flags
The environment to use. Defaults to development.
The branch to use. Defaults to the main branch.
Whether to pull all goals from the specified environment into the target directory path set by --goals-dir. Defaults to false.
When used, all contents in the target directory will be erased and replaced with all goals from the specified environment.
Specifies which target directory path to pull all goals into. Only available to be used with --all, and defaults to the current working directory.
Removes the confirmation prompt. Defaults to false.
knock goal push <goal_key> [flags]
#Push one or more goals from a local file system to Knock. Knock will update an existing goal by the matching goal key, or create a new goal if it does not exist yet. Goal upserts publish immediately; this command does not accept a --commit flag.
By default this command will resolve to the goals resource directory via your knock.json file. When not set, will use the current working directory as the default. In the case of the --all flag, the target directory path will be resolved via your knock.json file or the --goals-dir flag.
Note:
- You must be directly above the target goal directory when running the
goal pushcommand, so the CLI can locate thegoal.jsonfile. - Use
--forceto bypass environment restrictions and overwrite content in any environment.
See the Goal file structure section for details on how goal files are organized.
Flags
The environment to push the goal to. Defaults to development.
The branch to use. Defaults to the main branch.
Whether to push all goals from the target directory path set by --goals-dir. Defaults to false.
Specifies the target directory path to find and push all goals from. Only available to be used with --all, and defaults to the current working directory.
Force pushes the resource or resources to Knock, overwriting whatever is currently stored. Defaults to false.
knock goal validate <goal_key> [flags]
#Validate one or more goals from a local file system. Knock will validate the given goal payload in the same way as it would with the goal push command, except without persisting those changes.
Flags
The environment to validate the goal against. Defaults to development.
The branch to use. Defaults to the main branch.
Whether to validate all goals from the target directory path set by --goals-dir. Defaults to false.
Specifies the target directory path to find and validate all goals from. Only available to be used with --all, and defaults to the current working directory.
knock goal new [flags]
#Create a new goal with a minimal configuration. The command creates a new goal directory in your local file system. By default, this will be in the goals resource directory set by your knock.json file, or the current working directory if not configured.
Flags
The name of the goal. If not provided, will be generated from the key.
The key of the goal. If not provided, will be prompted or inferred from the directory name.
The description of the goal.
The environment to create the goal in. Defaults to development.
The branch to use. Defaults to the main branch.
Push the goal to Knock after creating it locally. Defaults to false.
Force creation of the goal directory without confirmation. Defaults to false.
knock goal open <goal_key> [flags]
#Open a goal in the Knock dashboard. This command opens the goal page in your default browser.
Flags
The environment to use. Defaults to development.
The branch to use. Defaults to the main branch.
knock goal archive <goal_key> [flags]
#Archive a goal. Archiving stops new completion and attribution calculation for the goal and cannot be undone. Historical versions and completions are retained.
Flags
The environment in which the goal exists.
The branch to use. Defaults to the main branch.
Removes the confirmation prompt. Defaults to false.
knock goal clone <goal_key> [flags]
#Clone a goal into a destination environment. Cloning copies the latest version of the goal (name, description, and condition). It does not copy attachments to workflows, broadcasts, or guides.
Flags
The environment that contains the source goal.
The environment to clone the goal into.
The key for the cloned goal. Defaults to the source key with a -copy suffix.
The name for the cloned goal. Defaults to the source name with a (Copy) suffix.
Removes the confirmation prompt. Defaults to false.