Create a tracked chat link
well_create_chat_invite_linkMake one tracked link to the WhatsApp chat with Well: a short Well link that opens the chat with prefill_text ready to send, followed by the link's reference code. Call it once per link the person asked for, such as one link per creator of a campaign or one per message variant.
Pass prefill_text exactly as the person wrote or approved it, or null for a link that opens the chat with the code alone. Well adds the code itself; never write a code into the text. Pass project_id of a campaign, or of one of its ad sets for one message variant, and person_id of the person the link is handed to, when the person named them.
The link opens until it is stopped with well_revoke_share_links. well_list_share_links lists it with how many people tapped it, how many conversations it started and how many of them signed up. Those are counts only: Well never tells the link's owner who tapped, wrote or signed up.
Give url to the person exactly as returned, on its own line, with one line that says it opens a WhatsApp chat with Well.
When the token authorizes one workspace, call this directly — no workspace call is needed first. When it authorizes several, this read will not guess which one you mean: pass workspace_id on the call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | No | The person the link is handed to, such as a creator. | |
| project_id | No | A campaign, or one of its ad sets for one message variant. | |
| prefill_text | Yes | The first message the chat opens with, as the person approved it; null for the code alone. | |
| workspace_id | No | Target workspace. Omit when the token authorizes one workspace. Required when it authorizes several — a write lands in exactly one workspace and this call would not say which. | |
| conversation_id | No | The conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation. | |
| idempotency_key | No | Optional client-supplied key. A retried write with the same key returns the original result instead of re-applying the operation. | |
| workspace_scope | No | Restrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The link to hand out. | |
| error | No | ||
| success | Yes | ||
| ref_code | No | The code the first message ends with. | |
| person_id | No | ||
| project_id | No | ||
| prefill_text | No | ||
| share_link_id | No | ||
| conversation_id | No | The conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation. | |
| newly_connected | No | Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later. | |
| resolved_workspace | No | The workspace that answered, when the caller named none and the token authorizes several. | |
| conversation_id_note | No | Present only when the server opened a fresh lane, stating that no choice recorded earlier was read. | |
| conversation_id_source | No | Where the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened. |