# Make videos searchable with description, tags, and speech [View original](https://ittybit.com/guides/make-videos-searchable) ## The Workflow ### Overview This workflow generates a [description](/docs/description) (with tags), transcribes [speech](/docs/speech), and uses a [prompt](/docs/prompt) to generate a domain-specific set of keywords. We can save this intelligence data to our database, and use it to populate our search indexes. *** ### Build Workflow ]}. Prefer city and region names over specific addresses.', next: [ { kind: 'webhook', url: 'https://example.com/webhooks/ittybit', }, ], }, ]} />

A [workflow](/docs/workflows) is an array of task definitions that describe what should happen and in what order.

Tasks in the array run in parallel. You can also chain tasks together in sequences using the `next` property.

*** ### Create Task We create a new task with the `kind: "workflow"`. The `workflow` property contains our workflow steps as defined above. ```ts const task = await ittybit.tasks.create({ url: "https://example.com/your-video.mp4", kind: "workflow", workflow: workflow }) ``` ```python task = ittybit.tasks.create({ url="https://example.com/your-video.mp4", kind="workflow", workflow=workflow }) ``` ```ruby task = ittybit.tasks.create({ url: "https://example.com/your-video.mp4", kind: "workflow", workflow: workflow }) ``` ```php $task = $ittybit->tasks->create([ 'url' => "https://example.com/your-video.mp4", 'kind' => "workflow", 'workflow' => workflow ]); ``` ```go task, err := ittybit.Tasks.Create( context.TODO(), &ittybit.TaskCreateParams{ Kind: "workflow", URL: "https://example.com/your-video.mp4", Workflow: workflow }, ) ``` ```js const task = await fetch('https://api.ittybit.com/tasks', { method: 'POST', headers: { 'Authorization': `Bearer ${ITTYBIT_API_KEY}` }, body: JSON.stringify({ url: "https://example.com/your-video.mp4", kind: "workflow", workflow: workflow }) }) ``` *** ### Handle Webhook Your webhook handler should parse the [File Object](/docs/files) payloads and save the data in your database.