> For the complete documentation index, see [llms.txt](https://developer.kizen.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.kizen.com/docs/concepts/smartconnectors/smartconnector-design-best-practices/smartconnector-running-and-testing-design-best-practices.md).

# SmartConnector Running and Testing Design Best Practices

{% hint style="success" %}
**Audience:** Administrators, Developers, Integrators, Solution Architect

**Purpose:** Explains the pre-launch and ongoing validation practices that help ensure a live run produces the results you expect, including dry running before any live execution, using diff checking to avoid reprocessing unchanged rows, and validating sample payloads before activating a Webhook <code class="expression">space.vars.smartconnector</code>.
{% endhint %}

## Overview

Configuration review confirms that a <code class="expression">space.vars.smartconnector</code> is structurally valid, but validating behavior against real data is what confirms it will produce the results you expect. The practices on this page cover the steps to take before a first live run, during recurring imports, and when building and activating Webhook <code class="expression">space.vars.smartconnectors</code>.

### Always Dry Run Before Going Live

Before running a new <code class="expression">space.vars.smartconnector</code> against production data, or after making changes to an existing <code class="expression">space.vars.smartconnector</code>, always perform a dry run first. A dry run executes the full workflow, including SQL processing, variable resolution, and load step evaluation, without writing <code class="expression">space.vars.entities</code> to <code class="expression">space.vars.Kizen\_company\_name</code>.

Review the dry run report before executing a live run. The report surfaces mapping errors, unresolved variables, and load step failures at the row level so you can address them before they affect production data.

For more information on dry runs and the run report, see [Running a SmartConnector.](/docs/concepts/smartconnectors/running-a-smartconnector.md)

### Use Diff Checking on Recurring Imports

For <code class="expression">space.vars.smartconnectors</code> that ingest the same full dataset on a recurring schedule, enable diff checking to skip rows that have not changed since the previous run. Diff checking compares a hash of each row's resolved execution variable values against the hash stored from the previous run. Rows whose hash matches are skipped before reaching the load step, which is most valuable when the majority of rows in a recurring file are unchanged from run to run.

Note that diff checking compares resolved execution variable values, not raw input data. A change in the input file that does not affect the resolved variable values will not register as a diff. If <code class="expression">space.vars.entities</code> are not updating as expected after a successful run, toggling diff checking off and re-running is the standard first troubleshooting step.

For configuration details, see [SmartConnector Diff Checking](/docs/concepts/smartconnectors/smartconnector-diff-checking.md).

### Validate Webhook SmartConnectors Before Activating

When building a Webhook <code class="expression">space.vars.smartconnector</code>, capture sample payloads while the <code class="expression">space.vars.smartconnector</code> is inactive. Incoming payloads are accepted and queued but not processed while the <code class="expression">space.vars.smartconnector</code> is inactive, so you can collect representative sample data without writing anything to <code class="expression">space.vars.Kizen\_company\_name</code>. Before activating, cancel any queued executions you do not want processed, then validate the full workflow using a dry run before going live.

For the full sample payload capture workflow, see Webhook <code class="expression">space.vars.smartconnectors</code> **(Topic Coming Soon)**.&#x20;

***

## What's Next

Continue to Build with SmartConnectors **(Topic Coming Soon)** to learn how to build, test, and deploy SmartConnector SQL from a local environment using the `sc` CLI, the dev package, and GitHub Actions.

<details>

<summary>Related Topics</summary>

* [SmartConnector Design Best Practices](/docs/concepts/smartconnectors/smartconnector-design-best-practices.md)
* [SmartConnecter SQL Design Best Practices](/docs/concepts/smartconnectors/smartconnector-design-best-practices/smartconnector-sql-design-best-practices.md)
* [SmartConnector Execution Variable Design Best Practices](/docs/concepts/smartconnectors/smartconnector-design-best-practices/smartconnector-execution-variable-design-best-practices.md)
* [SmartConnector Load Step Design Best Practices](/docs/concepts/smartconnectors/smartconnector-design-best-practices/smartconnector-load-step-design-best-practices.md)

</details>

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.kizen.com/docs/concepts/smartconnectors/smartconnector-design-best-practices/smartconnector-running-and-testing-design-best-practices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
