Skip to content

MySQL

Each lead Signals receives is written as a row in a table in a MySQL database you own. Leads land in the database your own application already reads from, so no import step or file handoff sits in between.

It is the only file destination with a field mapping step, so you decide which lead field goes into which column of your table.

  • A MySQL instance Signals can reach over the network.
  • The database and the table that leads should be written to, both already created. Signals writes into a table you have created; it does not create one.
  • A MySQL user with read and write access to that database.

In Studio, open Destinations, find the Files category, and click the MySQL tile. This connector authenticates with credentials you add manually, so there is no sign-in screen.

Select the Integration Type, which is the lead generation source the leads come from. The options are Meta Lead Ads, Snapchat Lead Generation Ads, TikTok Lead Ads, LinkedIn Lead Ads and Google Forms. Then select the lead ads connection name you want to deliver from, and give the instance a name. The instance name is yours to choose and does not have to match anything. Then click Next.

Enter the following, then click Test Connection.

FieldWhat it isWhere to find it
MySQL HostnameHostname of your MySQL server.From your database administrator, or your cloud provider’s console.
PortThe port number of your MySQL instance.3306 unless your administrator has moved it.
MySQL UsernameA user with read and write access to the database.Created in MySQL by your database administrator.
PasswordPassword for that user.Set when the user was created.
Database NameThe database where leads should be stored.The database your application uses.
Table NameThe table leads should be pushed to.Created in that database before you connect.

Map the fields from your lead source onto the columns of the MySQL table. The lead ID from the source must be mapped to a column; without it there is nothing stable to key on later. Map whichever other fields you need beyond that.

Column types decide whether a value survives the write. A phone number in a numeric column loses its leading zero, and a long free-text answer into a narrow column is either truncated or rejected. Use text columns wide enough for the real values, and keep the lead ID as text. Once the mapping is complete, click Finish.

One connection writes one table. To deliver a second source, or into a second table, add another instance from Manage Connections, entering and testing the credentials and mapping the fields again with the lead ID included. To change an existing one, click the connection name in Manage Connections, click the edit icon in the top right, update the fields or mappings, click Test Connection and click Finish.

Leads are delivered as submitted. Personal data is not hashed on this destination, because the system receiving it is your own and the point is that people and applications can read it.

Once a row is written, retention, access control, encryption at rest and backup are governed by your database and your policies, not by Signals.

Which fields arrive is decided by the lead form on the connected source, so a field you need that is not appearing has to be added there.

  • Put a unique index on the lead ID column, so the same lead arriving twice does not become two rows.
  • When the database password is rotated, update the instance with the new password. Delivery stops the moment the old one is retired.
  • Coordinate schema changes with the connection. Dropping or renaming a mapped column stops delivery.

Test Connection fails. Work through it in order: the hostname and port are right, the database name is right, and the user has write access to the target table.

The connection works but no rows appear. Confirm the table on the connection is the table you are querying, including the database, then confirm the source has produced leads.

Some rows are rejected and others are not. A type or length mismatch on the rows that fail, or a required column with no mapping and no default.

Phone numbers have lost their leading zero. The column is numeric. Change it to a text column.

Duplicate rows. There is no unique index on the lead ID column. Add one.

Delivery stopped overnight. Usually a password rotation or a schema migration that renamed or dropped a mapped column.