Cannot send props to Plasmic with react-email

I am using Plasmic with react-email but could not figure out a way to send any props to the template. Can someone point me to any docs

can you please explain what you’re trying to do

I just want to share props to email templates, for eg a user verification email has a button which contains a dynamic token that needs to passed down to button as a prop, how can we achieve this?

@tiago do you know how to do this (or maybe a team-mate)?

I am following this example
but couldn’t find any way to share props in readme

Hey @glorious_bedbug! Do you have the data you want to pass down to Plasmic in the file that is sending the email (i.e. If you do, a possible way to pass data down to Plasmic components is using DataProvider (, like:

        <DataProvider name="token" value={dynamicToken}>
          <PlasmicComponent component={pageMeta.displayName} />

To access the token in your Plasmic project, you would use $ctx.token. Let me know if that works for your use case!

NO this does not work for me. Let me explain it better.
Let’s say I have this email template in my plasmic studio that I am hosting via next api routes
In this case how can I make the URL of the link dynamic by passing prop

You would like to pass a parameter in the URL like: /api/email?template=Basic&token=xxx, is that it?


You can first add a token URL query parameter in Plasmic studio, then add pageQuery={req.query} after pageParams={pageMeta.params} in line 35 of, and finally use your data like $ctx.query.token in Plasmic studio.

Docs about page query parameters:

I don’t get it.
If the goal is to just design emails in plasmic studio and then allow the main application to access the templates, eg via a GET /email-template endpoint (that this external nextjs email-template app exposes ) - why does this nexjs app need dynamic pages?

@still_peacock, since the /api/email endpoint actually sends the email, I believe it makes sense to have some way to pass custom data to the template (for example, maybe you want to start the email with “Hello {FirstName}”). My first suggestion was for the API to contact the database, get the data and pass down to the template using DataProvider. The second suggestion, which I believe fits @glorious_bedbug’s use case better, is to pass the parameters via the URL. I think it’s a valid approach!


Thanks, it worked