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

# Sync Tally form submissions with AutoSend

> Learn how to connect Tally Forms with AutoSend to automatically sync form submissions with your contact lists.

export const AUTOSEND_PATHS = {
  dashboard: 'https://autosend.com/dashboard',
  apiKey: 'https://autosend.com/account/api-key',
  faqs: 'https://autosend.com/faq',
  marketingEmails: 'https://autosend.com/marketing-emails',
  webhooks: 'https://autosend.com/webhooks',
  composeByAutoSend: 'https://autosend.com/compose',
  emailActivity: 'https://autosend.com/email-activities',
  team: 'https://autosend.com/settings/team',
  pricing: 'https://autosend.com/pricing',
  verifyEmail: 'https://autosend.com/compose/email-builder?template=verify-email',
  welcomeEmail: 'https://autosend.com/compose/email-builder?template=welcome-email',
  productUpdate: 'https://autosend.com/compose/email-builder?template=product-update',
  newsletter: 'https://autosend.com/compose/email-builder?template=newsletter',
  automations: 'https://autosend.com/automations',
  globalSuppressions: 'https://autosend.com/suppressions/global',
  signup: 'https://autosend.com/signup',
  domains: 'https://autosend.com/settings/domains',
  smtpKey: 'https://autosend.com/settings/smtp',
  logoKit: 'https://asend.email/logo',
  contactsPage: 'https://autosend.com/contacts/list-and-segments',
  accountBilling: 'https://autosend.com/account/billing',
  accountUsage: 'https://autosend.com/account/usage',
  terms: 'https://autosend.com/legal/terms',
  inbound: 'https://autosend.com/email-activities/inbound'
};

export const APP_PATHS = {
  home: '/',
  quickstart: '/quickstart',
  domainConfiguration: '/domain',
  apiReference: '/api-reference',
  sendEmail: '/api-reference/mails/send',
  bulkSendEmail: '/api-reference/mails/bulk',
  upsertContactApiRef: '/api-reference/contacts/upsert-contact',
  transactional: '/transactional-emails',
  emailActivity: '/transactional-emails/email-activity',
  emailTemplates: '/transactional-emails/email-templates',
  sendingEmail: '/quickstart/email-using-api',
  transactionalTroubleshooting: '/transactional-emails/troubleshooting',
  marketing: '/marketing-emails',
  campaigns: '/marketing-emails/campaigns',
  contacts: '/marketing-emails/contacts',
  contactsIntroduction: '/marketing-emails/contacts/introduction',
  contactsImportCsv: '/marketing-emails/contacts/import-csv',
  contactsLists: '/marketing-emails/contacts/lists',
  contactsSegments: '/marketing-emails/contacts/segments',
  contactsCustomFields: '/marketing-emails/contacts/contact-properties',
  contactsContactProperties: '/marketing-emails/contacts/contact-properties',
  createContactPropertyApiRef: '/api-reference/contact-properties/create',
  listContactPropertiesApiRef: '/api-reference/contact-properties/list',
  getContactPropertyApiRef: '/api-reference/contact-properties/get-by-name',
  deleteContactPropertyApiRef: '/api-reference/contact-properties/delete',
  sender: '/marketing-emails/sender',
  unsubscribeGroups: '/others/unsubscribe-groups',
  webhookIntroduction: '/others/webhooks/introduction',
  webhookEventType: '/others/webhooks/event-type',
  webhookRetries: '/others/webhooks/retries',
  webhookVerifyRequests: '/others/webhooks/verify-requests',
  dynamicTemplates: '/dynamic-templates',
  guides: '/guides',
  sitemap: '/sitemap.xml',
  team: '/others/team',
  automations: '/automations',
  events: '/automations/events',
  sendEventApi: '/api-reference/events/send-event',
  smtpIntroduction: '/quickstart/smtp',
  betterAuth: '/guides/better-auth',
  convexGuide: '/guides/convex',
  templateVariables: '/transactional-emails/variables',
  suppressions: '/others/suppressions',
  rateLimit: '/api-reference/rate-limit',
  nodejsSdk: '/sdk/nodejs',
  smtpIntegrationGuides: '/guides/smtp',
  apiKeys: '/api-keys',
  encryptedPayloads: '/others/encrypted-payloads',
  apiReferenceIntroduction: '/api-reference/introduction',
  lovableGuide: '/ai/integrations/lovable',
  aiIntroduction: '/ai/introduction',
  aiSkills: '/ai/skills',
  aiMcpServer: '/ai/mcp-server',
  aiLovable: '/ai/integrations/lovable',
  aiBolt: '/ai/integrations/bolt',
  aiV0: '/ai/integrations/v0',
  aiReplit: '/ai/integrations/replit',
  mcpClaude: '/ai/mcp-clients/claude',
  mcpCursor: '/ai/mcp-clients/cursor',
  mcpCopilot: '/ai/mcp-clients/copilot',
  mcpWindsurf: '/ai/mcp-clients/windsurf',
  mcpCodex: '/ai/mcp-clients/codex',
  mcpAntigravity: '/ai/mcp-clients/antigravity',
  mcpChatgpt: '/ai/mcp-clients/chatgpt',
  mcpRaycast: '/ai/mcp-clients/raycast',
  domainWarmup: '/marketing-emails/domain-warmup',
  projects: '/projects',
  createAutomationApi: '/api-reference/automations/create-automation',
  migrationSendgrid: '/migration/sendgrid',
  migrationResend: '/migration/resend',
  auth0CustomAction: '/guides/auth0-custom-action',
  accountBilling: '/others/account/billing',
  accountUsage: '/others/account/usage',
  inboundIntroduction: '/inbound/introduction',
  listInboundMessagesApi: '/api-reference/inbound-emails/list-messages',
  getInboundMessageApi: '/api-reference/inbound-emails/get-message',
  downloadInboundAttachmentApi: '/api-reference/inbound-emails/download-attachment',
  replyToInboundMessageApi: '/api-reference/inbound-emails/reply-to-message',
  wikiDailySendingLimit: '/wiki/daily-sending-limit'
};

<Frame>
  <img src="https://mintcdn.com/autosend-13920f5c/UWyLmtM-z0Ndw8_F/images/integrations/tally/autosendxtally.jpg?fit=max&auto=format&n=UWyLmtM-z0Ndw8_F&q=85&s=b3f73da2a59d5c7fa1e51840b781b207" alt="AutoSend and Tally Forms integration" width="1800" height="600" data-path="images/integrations/tally/autosendxtally.jpg" />
</Frame>

## Overview

[Tally](https://tally.so) is a form builder for creating signup forms, waitlists, surveys, and lead capture forms. AutoSend has a native Tally Forms integration that automatically syncs your form submissions with contacts in AutoSend, with no code required.

Once synced, you can use those contacts to send <a href={APP_PATHS.campaigns}>campaigns</a>, trigger <a href={APP_PATHS.automations}>automations</a> like a welcome sequence, or build <a href={APP_PATHS.contactsSegments}>segments</a> based on their form answers.

## How it works

1. You connect your Tally account to AutoSend with your Tally API key.
2. You pick a Tally form and the <a href={APP_PATHS.contactsLists}>contact list</a> its submissions should be saved to.
3. You map the form fields to <a href={APP_PATHS.contactsContactProperties}>contact properties</a> in AutoSend.
4. From then on, every new submission is automatically saved as a contact in the selected list. If a contact with the same email already exists, it is updated instead of duplicated.

<Note>
  Email is a mandatory field for a contact to be stored in AutoSend. Make sure your Tally form
  includes an email field, and that it is mapped to the contact's email property.
</Note>

## Prerequisites

Before you begin, make sure you have:

* An [AutoSend account](https://autosend.com/)
* A [Tally](https://tally.so) account with at least one form that collects an email address

## Connect Tally Forms with AutoSend

<Steps>
  <Step title="Open the Integrations page" titleSize="h3">
    Go to [Integrations](https://autosend.com/integrations) in your AutoSend dashboard and click
    **Connect** on the **Tally Forms** card.

    <Frame>
      <img src="https://mintcdn.com/autosend-13920f5c/4jYMLUfq4Aa4Weuc/images/integrations/tally/1-connect-tally-forms-with-autosend.png?fit=max&auto=format&n=4jYMLUfq4Aa4Weuc&q=85&s=8ea451ced4b828dc2985493880a6bf50" alt="AutoSend Integrations page with the Connect button on the Tally Forms card" width="2870" height="1852" data-path="images/integrations/tally/1-connect-tally-forms-with-autosend.png" />
    </Frame>
  </Step>

  <Step title="Enter your Tally API key" titleSize="h3">
    In the modal that opens, enter your Tally API key. You can create one from [Tally's API keys
    settings](https://tally.so/settings/api-keys). The key starts with `tly-`.

    <Frame>
      <img src="https://mintcdn.com/autosend-13920f5c/4jYMLUfq4Aa4Weuc/images/integrations/tally/2-connect-tally-forms-with-autosend.png?fit=max&auto=format&n=4jYMLUfq4Aa4Weuc&q=85&s=b7b1c1019f92378faaeab3a32061b424" alt="Connect with Tally Forms modal asking for the Tally Forms API key" width="1854" height="1108" data-path="images/integrations/tally/2-connect-tally-forms-with-autosend.png" />
    </Frame>
  </Step>

  <Step title="Connect" titleSize="h3">
    Click **Connect**. Tally Forms is now connected to AutoSend, and you will see it marked as
    **Connected**.

    <Frame>
      <img src="https://mintcdn.com/autosend-13920f5c/4jYMLUfq4Aa4Weuc/images/integrations/tally/3-connect-tally-forms-with-autosend.png?fit=max&auto=format&n=4jYMLUfq4Aa4Weuc&q=85&s=428b42eb7290f6dacab4ac7535e92039" alt="Tally Forms integration page showing the Connected status" width="2876" height="1846" data-path="images/integrations/tally/3-connect-tally-forms-with-autosend.png" />
    </Frame>
  </Step>
</Steps>

## Sync a form with a contact list

Next, connect a specific Tally form to a contact list in AutoSend.

<Steps>
  <Step title="Add a form" titleSize="h3">
    On the Tally Forms integration page, click **Add Form**.

    <Frame>
      <img src="https://mintcdn.com/autosend-13920f5c/4jYMLUfq4Aa4Weuc/images/integrations/tally/1-sync-form.png?fit=max&auto=format&n=4jYMLUfq4Aa4Weuc&q=85&s=c2179ec0fc608667170c9ba62fe65301" alt="Tally Forms integration page with the Add Form button" width="2876" height="1846" data-path="images/integrations/tally/1-sync-form.png" />
    </Frame>
  </Step>

  <Step title="Select the form and contact list" titleSize="h3">
    Select the Tally form whose submissions you want to sync, and choose the AutoSend contact list to save contacts in.

    Contacts are saved to **All Contacts** by default. Choosing a specific <a href={APP_PATHS.contactsLists}>list</a> also triggers any live <a href={APP_PATHS.automations}>automations</a> attached to that list, which is useful for sending a welcome email to new signups.

    <Frame>
      <img src="https://mintcdn.com/autosend-13920f5c/4jYMLUfq4Aa4Weuc/images/integrations/tally/2-sync-form.png?fit=max&auto=format&n=4jYMLUfq4Aa4Weuc&q=85&s=794be99eef81d4fb6c92fa1985c739eb" alt="Connect Form screen with dropdowns to select a Tally form and the contact list to save in" width="2872" height="1846" data-path="images/integrations/tally/2-sync-form.png" />
    </Frame>
  </Step>

  <Step title="Map the form fields" titleSize="h3">
    Match each Tally form field to the correct <a href={APP_PATHS.contactsContactProperties}>contact property</a> in AutoSend. The email field is required, and other answers can be mapped to properties like first name, last name, or your own custom properties.

    <Frame>
      <img src="https://mintcdn.com/autosend-13920f5c/4jYMLUfq4Aa4Weuc/images/integrations/tally/3-sync-form.png?fit=max&auto=format&n=4jYMLUfq4Aa4Weuc&q=85&s=5a1e89e6640a506ed88cbcf11e32cb5f" alt="Field mapping table matching Tally form fields to AutoSend contact properties" width="2878" height="1850" data-path="images/integrations/tally/3-sync-form.png" />
    </Frame>

    <Note>
      A contact is only stored in AutoSend if the submission includes an email address. Fields you
      leave unmapped are not synced.
    </Note>
  </Step>

  <Step title="Done" titleSize="h3">
    Save the connection. From now on, every new submission to this form is synced as a contact in AutoSend.

    You can repeat these steps to sync multiple forms, each with its own contact list and field mapping. The integration page shows all connected forms along with the list they save to and their sync status.

    <Frame>
      <img src="https://mintcdn.com/autosend-13920f5c/4jYMLUfq4Aa4Weuc/images/integrations/tally/4-sync-form.png?fit=max&auto=format&n=4jYMLUfq4Aa4Weuc&q=85&s=d1e4a21b4d147ae89140b8377ea7384d" alt="Tally Forms integration page listing a connected form with its contact list and active status" width="2878" height="1846" data-path="images/integrations/tally/4-sync-form.png" />
    </Frame>
  </Step>
</Steps>

## Test the integration

Submit a test response to your Tally form, then check the <a href={AUTOSEND_PATHS.contactsPage} target="_blank">Contacts ↗</a> page in your AutoSend dashboard. The respondent should appear as a contact in the selected list within a few seconds.

## Troubleshooting

### Contacts are not appearing in AutoSend

* Make sure the submission includes an email address. Submissions without an email are not stored as contacts.
* Check that the form's status on the Tally Forms integration page is active.
* Confirm your Tally API key is still valid. If you revoked it in Tally, reconnect the integration with a new key.

### Form answers are missing on the contact

* Only mapped fields are synced. Open the form's field mapping and make sure each answer you want stored is mapped to a contact property.
* To store answers that don't match a built-in property, map them to <a href={APP_PATHS.contactsContactProperties}>custom contact properties</a>.

## Next steps

<Columns cols={2}>
  <Card title="Contact Lists" icon="list" href="/marketing-emails/contacts/lists">
    Organize synced respondents into lists for targeted campaigns.
  </Card>

  <Card title="Email Automations" icon="arrow-progress" href="/automations">
    Trigger a welcome sequence when a contact joins a list.
  </Card>

  <Card title="Segments" icon="filter" href="/marketing-emails/contacts/segments">
    Build segments from form answers stored as contact properties.
  </Card>

  <Card title="Campaigns" icon="envelope" href="/marketing-emails/campaigns">
    Send one-off marketing emails to your synced contacts.
  </Card>
</Columns>
