# Migrating from another platform

> How to bring members from another community or course platform into Memberfy, with groups, tags, profile fields, the badges each person already had and their initial points, without firing notices, with a sample spreadsheet.

Coming from another platform, you do not have to start from scratch: one spreadsheet brings each person with what they already had there, including **badges** and **points**, so nobody loses what they earned. Old posts come through another spreadsheet, with their original date and author.

*Role: owner or admin.*

## What you can bring

| What | How |
|---|---|
| People (e-mail, name, phone, job title, bio) | [Import members from a spreadsheet](/membros/importar-membros) |
| Groups, tags and profile fields | In the same spreadsheet, one column each. A group that does not exist is created; so is a new field |
| Badges each person already had | In the same spreadsheet, the **Badges** column, with names from the community's catalog |
| Points each person already had | In the same spreadsheet, the **Initial points** column |
| Posts and articles, with their original date and author | [Importing content from a spreadsheet](/espacos/importar-conteudo) |

## Before importing

1. **Build the structure**: sections, spaces and groups. See [Build the structure](/primeiros-passos/monte-a-estrutura).
2. **Create the badges** in **Administration › Engagement**, **Badges** view, **New badge**, with the **same names** as on the old platform. Only badges in the catalog come in: a name that does not exist blocks the import until you create it or mark it to be ignored. See [The catalog](/membros/engajamento#the-catalog).
3. **Turn on [gamification](/membros/gamificacao)** and, if you want, set up the levels. With it off, the spreadsheet's points are ignored.
4. **Export the spreadsheet** from the old platform, as .xlsx or .csv, one row per person.

## The sample spreadsheet

Download the [sample spreadsheet (.csv)](/exemplos/migrar-membros-en.csv) and replace it with your data:

| Email | First name | Last name | Job title | Group | Badges | Points | Agreed to join |
|---|---|---|---|---|---|---|---|
| maria@memberfy.net | Maria | Souza | Product Manager | Founders | Founder; Mentor | 1,500 | Yes |
| joao@memberfy.net | João | Lima | Data engineer | Founders | Mentor | 820 | Yes |
| ana@memberfy.net | Ana | Costa | Designer | | First post | 250 | Yes |
| pedro@memberfy.net | Pedro | Alves | Analyst | | | | Yes |

- **Badges:** several in the same cell, separated by `;`. A comma can be part of a name. Case and accents do not matter.
- **Points:** a whole number from 1 to 100,000. `1.500`, `1,500` and `250.0` are accepted; empty or 0 gives no points. A value with decimals (`12.5`) or that is not a number is invalid: the person comes in without the points, with a warning on the row.

## Importing

1. **Administration › Members**, **Invite Members**, **Import spreadsheet** tab.
2. Write the **List origin** (*Members from the old platform*), choose the file and go on to **Columns**.
3. Send each column to its target: *Email* to **E-mail**, *First name* and *Last name*, *Job title*, *Group* to **Groups**, *Badges* to **Badges**, *Points* to **Initial points** and *Agreed to join* to **Consent**, with *Yes* counting as yes.
4. In the **Summary**, check the badges that are not in the catalog (create or ignore them), the invalid points, who already got points from another import and **which level** people will land on.
5. **Import**.

## What happens

- **New people** get the e-mail invite with **Set my password**, as in any import; existing members get nothing.
- **Badges and points arrive silently:** no e-mail or bell notice, and no workflow fires (**Received a badge**, **Moved up a level**, **Reached N points**). The badge-received [webhook](/api/eventos-de-webhook) does go out, with the import origin.
- **Points only once per person**, across every import: if you import again, whoever already got them does not get them again.
- **Whoever already holds the badge** keeps it.
- Each person's level comes from the points. People arriving through the import have no weekly activity yet, so a level that requires activity only comes once they take part.

## Example

A community of 1,200 people leaves another platform. Beforehand, it creates the badges *Founder*, *Mentor* and *First post* in the catalog and turns gamification on. The spreadsheet has a *Beta tester* badge that no longer exists: in the summary, they mark it to be ignored. The summary shows 900 people on level 1, 280 on level 3 and 20 on level 5. They import: invites go out, badges and points show on each profile, and nobody gets a badge notice.

## Common errors and how to fix them

| Situation | What to do |
|---|---|
| *These badges are not in the catalog: …* | Create each badge with that name in the catalog or mark it to be ignored |
| The person came in without points | The value had decimals or was not a number; fix it and adjust by hand with **Adjust points**. Importing again does not give points to someone who already got them from an import |
| Nobody got points | Gamification was off |
| The badge did not come | The name does not match the catalog, or it was marked to be ignored |

## Related

- [Import members from a spreadsheet](/membros/importar-membros)
- [Importing content from a spreadsheet](/espacos/importar-conteudo)
- [Engagement and badges](/membros/engajamento#badges)
- [Gamification](/membros/gamificacao)
