Hi everyone?
Is anyone aware of a way to create a series of personalized invitations (pdfยดs), with the names on a table?
I built a Template Email to the invitation of the meeting with data from โmeetingsโ table, but it has no name on it.
Now I need to personalize that for each name in the โmembersโ table.
Is there a way to automatize that with AppSheet?
Solved! Go to Solution.
As @Marc_Dillon pointed out and you now realize, the workflow must run for each Member. That is the only way to get an email to each individual person.
The question is how can you get the Meeting details when cycling through the members? A template can run queries against other tables. Is there some way the template can identify which meeting invite when the PDF is being generated? If so, then you can write that query inside the template to pull those meeting details.
If not, then you must have some way to link the meeting to each person for purposes of including the meeting AND the member info together into the template.
What I would do is create a two-step process for each meeting invite added.
The first step is a custom action (or set of actions) attached to the meeting save. It adds rows to a โworkingโ table for each member - populating the member ref along with the meeting ref. Maybe just member ref and meeting ref columns are all that is needed.
The second step is a workflow triggered on the adds to the โworkingโ table - one for each member - to generate the PDF from template. To keep the โworkingโ table clean, you can add a step in the workflow to delete the row once the email is sent.
It sounds like you need to trigger a workflow to run on every record in your โMembersโ table.
Hi @Marc_Dillon, thanks for pointing that out, and putting it in easier words.
Im not sure on how to achieve that.
I mean, I have my working workflow, which sends an email with generic invitation PDF with no name on it.
Im just missing how to make the workflow make a PDF invitation for every record of my โmembers tableโ with their name on it.
It actually doesnยดt have to be an Email Workflow, I think it could also work with MakeDoc.
Your existing workflow is run on a single record of another table, correct?
You can start by creating an action from that table, of type โexecute an action on a set of rowsโ, that will run a data change action on all records of the โMembersโ table, which can trigger a workflow for all member records.
Ouch! Butโฆ Yeah.
As @Marc_Dillon pointed out and you now realize, the workflow must run for each Member. That is the only way to get an email to each individual person.
The question is how can you get the Meeting details when cycling through the members? A template can run queries against other tables. Is there some way the template can identify which meeting invite when the PDF is being generated? If so, then you can write that query inside the template to pull those meeting details.
If not, then you must have some way to link the meeting to each person for purposes of including the meeting AND the member info together into the template.
What I would do is create a two-step process for each meeting invite added.
The first step is a custom action (or set of actions) attached to the meeting save. It adds rows to a โworkingโ table for each member - populating the member ref along with the meeting ref. Maybe just member ref and meeting ref columns are all that is needed.
The second step is a workflow triggered on the adds to the โworkingโ table - one for each member - to generate the PDF from template. To keep the โworkingโ table clean, you can add a step in the workflow to delete the row once the email is sent.
Yep, exactly. Thanks for writing what I didnโt feel like typing out at the time
What I would do is to โflagโ the Meeting record, by setting a column to UTCNOW(). Then in the template that runs for each Member workflow, you can enter the context of that Meeting record with:
<<START: LIST( MAXROW( โMeetingsโ , โFlag Columnโ ) )>>
Thanks @WillowMobileSystems, you just nailed it.
I used this formula to get the Meeting Details provided by @Steve at FAQ: FILTER(), LOOKUP(), MAXROW(), MINROW(), REF_ROWS(), and SELECT()
<<LOOKUP(MAX(Meetings[_ROWNUMBER]),โmeetingsโ,โ_ROWNUMBERโ,โMeeting dateโ)>>
The last value of the formula is the name of the column you want to get from Meetings table.
I went further and linked another table with the lists of the โmeeting objectivesโ like this:
<<start: SELECT(Meeting objectives[Unique ID], (LOOKUP(MAX(Meetings[_ROWNUMBER]),โMeetingsโ,โ_ROWNUMBERโ,โMeeting dateโ)=[Meeting date]))>>
<<[Meeting objectives]>>
<>
End Result:
User | Count |
---|---|
43 | |
32 | |
25 | |
23 | |
14 |