> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pult.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Sending items

> Fingerprints, occurrences, regressions, tags, suggested actions and batching.

```ts theme={null}
const result = await pult.send(crashes, {
  fingerprint: topFrame,
  title: `panic in ${topFrame}`,
  record: user.id,
  data: { stack, version, os },
  tags: ["desktop"],
})
```

`send` validates `data` against the inbox's schema, renders the item in your app and sends it. It returns the item's `id`, whether it was `created` or `reopened`, and its `occurrences` count.

## Fingerprints

The fingerprint decides what counts as the same problem. Items with the same fingerprint in the same inbox are one item: the second send adds an occurrence instead of a new item, updates the title and content, and bumps it to the top of the list.

Pick something stable that describes the problem rather than the instance: the top stack frame of a crash, the id of a reported message, the email address of a support request. Without a fingerprint, every send is a new item.

Pult keeps a sample of occurrences (the first fifty, then every fiftieth) with their data and blocks, so people can see how a problem varies.

## Regressions

If the inbox reopens on new occurrences and the item is closed, sending its fingerprint again reopens it, tags it `regressed` and runs [triage](/build/triage) again if the inbox has it.

## Records

`record` is the id of a record of the inbox's [resource](/build/resources). The item links to it, offers its actions, and counts how many different records have hit it ("users affected").

## Suggesting an action

Your app can suggest what to do:

```ts theme={null}
await pult.send(abuse, {
  fingerprint: repo.id,
  record: repo.id,
  data: { signal: "crypto-miner", score: 0.97 },
  suggest: [{ action: repo.actions.hide, reason: "Runs a crypto miner" }],
})
```

The suggested action comes first on the item and is highlighted. Its reason shows when someone hovers it or opens its form, and the form is prefilled if you pass `input`.

## Batching

Calls to `send` made within a few milliseconds of each other go out as one request, up to 200 items. Fire as many as you like from a loop or a busy handler; you don't need to batch yourself. Each call still gets its own result.

## Merging

People can merge items from the same inbox in the console. The kept item takes the others' occurrences, affected records, tags and history, and anything your app sends with the merged fingerprints lands on the kept item from then on.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.