---
title: "Use Signatoro in Twenty CRM"
url: https://signatoro.com/docs/install-signature/agent/twenty
description: "Emails sent from Twenty, the open-source CRM, arrive without the sender's signature. Signatoro, the agentic email signature platform, appends it in a Twenty workflow: an HTTP Request step fetches the saved signature, and Send Email puts it after the message."
published: 2026-10-25
updated: 2026-10-25
---

# Use Signatoro in Twenty CRM

Emails sent from Twenty, the open-source CRM, arrive without the sender's signature. Signatoro, the agentic email signature platform, appends it in a Twenty workflow: an HTTP Request step fetches the saved signature, and Send Email puts it after the message.

When someone sends an email from [Twenty](https://twenty.com) through a connected account, from the record composer, the AI send-email tool or the workflow Send Email action, "the email arrives without their signature", as a Twenty user put it in [the discussion asking for a fix](https://github.com/twentyhq/twenty/discussions/21194). Gmail adds the saved signature only in its own compose window, and the Gmail API that Twenty sends through does not, so sales and support teams lose the name, title, company and disclaimer they rely on.

Until Twenty ships its own answer, a Twenty workflow can append the sender's email signature to outbound emails with two steps: an HTTP Request that fetches the signature saved on Signatoro, and the Send Email action that puts it after the message. It works with whichever connected account the workflow sends from, and a change on Signatoro reaches the next email.

## Fetch the signature from Signatoro or type it into the workflow?

A signature typed into the Send Email body works for one sender until it changes. Fetch it from Signatoro when:

- **One change should reach every email.** Edit the signature on Signatoro, and every workflow that fetches it sends the new one, with nothing to edit in Twenty.
- **Twenty is one of several senders.** Your mail app, Claude, ChatGPT, n8n and Twenty use the same saved signature.
- **The workflow sends as the company or an AI agent.** A key made for a company AI agent returns that agent's signature: its name and role, the company brand and a line saying it is an AI.

Signatoro is free to start, and every plan includes the API.

## Before you start

1. Save the signature on the [signature page](https://signatoro.com/home).
2. On the [Connect page](https://signatoro.com/home/connect?tab=api), under "For tools and assistants", click "Generate API key". For a workflow that sends as a company AI agent or one of your AI assistants, make the key for that agent. The key is shown once.

One key returns one signature. A workflow that sends from one person's account uses that person's key.

## Add the signature in a workflow

In your workflow, after the trigger and before Send Email (or Draft Email):

1. Add an **HTTP Request** action. Method: **GET**. URL: `https://signatoro.com/api/v1/signature`.
2. Add a header: `Authorization`, value `Bearer sig_live_...` (your API key).
3. Test the step once, so its response fields show up in the variable picker.
4. In the **Send Email** action, write the message, leave an empty line, then click the variable picker `(x+)` and insert the HTTP Request step's **text** field.
5. For your logo or photo, paste the image once into the body, below the signature: copy it from your signature on Signatoro and paste it into the Send Email body.
6. Test the workflow with your own address and check the end of the email.

Every run fetches the signature text again, so the next email carries any change made on Signatoro. The pasted image stays as you pasted it: replace it in the workflow when your logo or photo changes. For the short signature, the name, role line and one link, add `?mode=short` to the URL.

### Why text and not html

Signatoro's reply has the signature as `html` and as `text`. Twenty's email body escapes the HTML inside a variable, so `html` would show up as code in the email. A variable's `text` keeps its line breaks, so the `text` signature arrives as written: name, role, company, phone and links, each on its own line, with the email address and links clickable.

Signatoro ran this workflow on 2026-10-25 in a Twenty Cloud workspace, sending from a connected Gmail account with a signature set in Gmail's settings: the `text` signature arrived as above, a logo pasted into the body arrived as an image, `html` arrived as code, and Gmail added none of its own signature. The email body has no image block to put a variable in, so a picture cannot follow Signatoro the way the text does. Twenty's source code says the same (`resolve-email-body.util.ts`).

### Keep the key out of sight

Twenty stores the header in the workflow, where anyone who can edit the workflow can read it. Make a key for this workflow only, and revoke it on the Connect page if it leaks.

## The record composer and the AI send-email tool

Emails written in the record composer and sent by Twenty's AI send-email tool have no step to add a signature in. Twenty's [discussion #21194](https://github.com/twentyhq/twenty/discussions/21194) tracks a built-in fix. Until then, send the emails that need a signature through a workflow, and the HTTP Request step above signs them.

## Twenty signature questions

### Why does email sent from Twenty have no signature?

Gmail adds the saved signature in its own web and mobile compose window. Twenty sends through the Gmail API, which sends the message as Twenty builds it, and Twenty's outbound path adds no signature, so the email ends where the message ends. In Signatoro's test, an email sent from a Twenty workflow through a Gmail account with a saved signature arrived without it.

### Does this work for accounts other than Gmail?

Yes. The workflow puts the signature into the message itself, so it does not depend on the mail provider's own signature setting. Signatoro ran the same workflow from a connected Microsoft account on 2026-10-25: the `text` signature arrived the same way, and Outlook's saved signature was not added either.

### Can each person sign as themselves?

Each key returns one signature. A workflow that sends from one person's account uses that person's key; several senders take one workflow, or one HTTP Request step, each.

## For agents

- In a Twenty workflow, fetch the signature with an HTTP Request step, `GET https://signatoro.com/api/v1/signature` with `Authorization: Bearer <key>`, before Send Email or Draft Email.
- Insert the step's `text` field after the message and an empty line. Twenty escapes HTML in variables, so `html` arrives as code. A logo goes in as an image pasted into the body once.
- Write no sign-off of your own after it, and for the sender's details in the body use only the values in `sender`.

Related guides: [the signature API](https://signatoro.com/docs/install-signature/agent), [the Gmail API](https://signatoro.com/docs/install-signature/agent/gmail-api) and [n8n, Zapier and Make](https://signatoro.com/docs/install-signature/agent/automations).

## Sources

Checked on 2026-10-25:

- [Append the sender's email signature to outbound emails (Twenty discussion #21194)](https://github.com/twentyhq/twenty/discussions/21194)
- [Workflow actions (Twenty docs)](https://docs.twenty.com/user-guide/workflows/capabilities/workflow-actions)
- [Send emails from workflows (Twenty docs)](https://docs.twenty.com/user-guide/workflows/capabilities/send-emails-from-workflows)
- [resolve-email-body.util.ts (Twenty source)](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/mail-sender/utils/resolve-email-body.util.ts)
