New to Kestra?
Use blueprints to kickstart your first workflows.
Sync external API data into a custom ServiceNow table with Kestra. Automate upsert logic, ITSM data ingestion, and operational workflows on a schedule.
Keep a custom ServiceNow table continuously in sync with an external data source. This flow pulls records from an HTTP API and upserts them into a ServiceNow custom table, updating rows that already exist and inserting the ones that do not. It solves the recurring ITSM integration problem of mirroring product, asset, or reference data into ServiceNow without manual imports or brittle one-off scripts, using the ServiceNow Table API for every read and write.
io.kestra.plugin.core.trigger.Schedule trigger fires daily on the 0 6 * * * cron.fetch_products runs a io.kestra.plugin.core.http.Request GET against the source API and returns a list of records in body.products.iterate_products, a io.kestra.plugin.core.flow.ForEach, loops over each record.check_existing_product (io.kestra.plugin.servicenow.Get) queries the product_data table for matching fields (title, description, price, category).if_product_exists, a io.kestra.plugin.core.flow.If, branches on check_existing_product.size > 0.update_product_in_servicenow (io.kestra.plugin.servicenow.Update) updates it by sysId. Otherwise post_product_to_servicenow (io.kestra.plugin.servicenow.Post) inserts a new row.The ServiceNow scheduler runs jobs inside the platform but cannot reach out, pull from an arbitrary HTTP API, branch per record, and retry the failed call in isolation. Kestra drives the whole cross-system flow from declarative YAML: event and schedule triggers start the run, task-level retries recover transient API failures, and every execution is captured with full lineage and replayable logs. You get one auditable definition spanning the source API and ServiceNow instead of scattered scripts.
product_data (or your own) with the target columns.SN_DOMAIN: your ServiceNow instance domain.SN_USERNAME: the ServiceNow account username.SN_PASSWORD: the ServiceNow account password.SN_DOMAIN, SN_USERNAME, and SN_PASSWORD secrets to your Kestra environment.product_data table and its fields exist in ServiceNow.fetch_products at your own API and remap the data fields.check_existing_product to a unique key.Schedule cron or swap it for an event-based trigger.